【发布时间】:2021-07-26 16:50:58
【问题描述】:
对于下面的df
data=[['TAMU', 54, 0, 0, 6, 5, 0,],['UIUC', 33, 43, 5, 0, 76, 81],
['USC',4, 1, 0, 7, 21, 4], ['Austin',22,31, 0, 0,55, 0],
['UCLA', 55, 6, 7, 9, 11,12]]
pd.DataFrame(data,columns = ['Name', 'Research', 'Thesis',
'Proposal', 'AI', 'Analytics', 'Data'])
我想为两个指定行(例如 USC 和 UCLA)的所有可能的列组合(例如:AI、Analytics --Data、AI)创建列联表,以提供给我的卡方函数
def overflow(school1,school2,alpha):
pvals_list=[]
data=[['TAMU', 54, 0, 0, 6, 5, 0,],['UIUC', 33, 43, 5, 0, 76, 81],
['USC',4, 1, 0, 7, 21, 4], ['Austin',22,31, 0, 0,55, 0],
['UCLA', 55, 6, 7, 9, 11,12]]
pd.DataFrame(data,columns = ['Name', 'Research', 'Thesis', 'Proposal',
'AI', 'Analytics', 'Data'])
df=df[(df['Unnamed: 0'] == school1) | (df['Unnamed: 0'] == school2)]
df=df.loc[:, df.ne(0).all()]
df=df.set_index('Name')
###
####code to create columns pairs [for loop?]to feed to data_crosstab below
###
data_crosstab = pd.crosstab()
chi,p_vals = stats.chi2_contingency(data_crosstab)[:2]
if p > alpha:
pvals_list.appned(p_vals)
return(pvals_list)
overflow('USC','UCLA',0.05)
编辑:到目前为止,我已经尝试了几种不同的方法,但都没有奏效。任何帮助将不胜感激。
【问题讨论】:
标签: python python-3.x pandas dataframe combinatorics