1
我敢肯定,必須有一個quickfix,但我找不到一個好的解釋答案。我正在尋找迭代一個數據框,併爲每一對帶熊貓的列構建一個交叉表。我已經從原始數據中對2列進行了子集化,並刪除了不合適數據的行。有了剩餘的數據,我正在尋找一個交叉表來最終構建一個應急表來執行ChiX測試。以下是我的代碼:ValueError當使用熊貓的交叉表
my_data = pd.read_csv(DATA_MATRIX, index_col=0) #GET DATA
AM = pd.DataFrame(columns=my_data.columns, index = my_data.columns) #INITIATE DF TO HOLD ChiX-result
for c1 in my_data.columns:
for c2 in my_data.columns:
sample_df = pd.DataFrame(my_data, columns=[c1,c2]) #make df to do ChiX on
sample_df = sample_df[(sample_df[c1] != 0.5) | (sample_df[c2] != 0.5)].dropna() # remove unsuitable rows
contingency = pd.crosstab(sample_df[c1], sample_df[c2]) ##This doesn't work?
# DO ChiX AND STORE P-VALUE IN 'AM': CODE STILL TO WRITE
數據幀包含值0.0,0.5,1.0。 '0.5'缺少數據,因此我在創建列聯表之前刪除了這些行,我希望將列聯表的所有值都設爲0.0或1.0。我已經檢查了代碼作品到目前爲止。打印到控制檯的錯誤是:
ValueError: If using all scalar values, you must pass an index
如果有人可以解釋爲什麼這不起作用?以任何方式幫助解決?或者甚至更好地提供一種替代方法來對柱子進行ChiX測試,然後這會非常有幫助,事先要感謝!
編輯:例如sample_df
col1 col2
sample1 1 1
sample2 1 1
sample3 0 0
sample4 0 0
sample5 0 0
sample6 0 0
sample7 0 0
sample8 0 0
sample9 0 0
sample10 0 0
sample11 0 0
sample12 1 1
當然,有一個快速修復。如何向我們展示您的數據? –
它基本上是一個有2列和大約100行的數據框,所有的值都是1或0.原始數據框'my_data'是sample_df的派生地點,除了〜3000列外, 0.5',已在sample_df中刪除 – user3062260
什麼是樣本? –