这是一个由两部分组成的问题:
1)我有两个交叉标签,我希望在一个df中。我需要更改列名。我以为这很容易。医生让它看起来很简单。框架顶部如下所示:
Category 0.0 1.0
Name
Bob 1 0
我希望它看起来像这样:
^{pr2}$当我尝试colnames=并得到一个错误时,我问它认为列名是什么并得到了。在
Float64Index([0.0, 1.0], dtype='float64', name='Category')
我试着用。在
colnames=['Loss', 'Win', 'Category']
但是我得到了:AssertionError: arrays and names must have the same length
,这对我来说没有什么意义,因为我之前已经毫无问题地更改了df的列名。在
2)我梦想将上述内容加入另一个交叉表。我认为内部连接可能有用。如果名称出现在两个交叉表中,我希望它们出现在合并的表中,如果没有的话就忘了它们。但是,由于左表中的一些名称(让我们在左表上方调用表)没有出现在右表中(我要加入category列,这只是一个名称列表),内部联接是不可能的。我的最终目标是用交叉频率表进行卡方检验,它看起来像。在
Category1 Win Loss
Category2
Win2 5 20
Loss2 10 5
如果有任何关于解决一个或两个问题的建议,并让我进入梦想的方格,我将不胜感激。在
编辑:合并数据帧的例子,我想得到一个交叉频率/卡方。在
DF1:
Category Loss Win
Name
Bob 1 0
Alice 5 1
Anne 1 0
Betty 8 2
Joan 4 1
DF2:
Category2 Loss2 Win2
Name
Alice 1 1
Anne 0 1
Betty 1 3
Joan 1 1
Combined Table:
Category Loss Win Loss2 Win2
Name
Alice 5 1 1 1
Anne 1 0 0 1
Betty 8 2 1 3
Joan 4 1 1 1
只在出现在两个表中的名称上联接DF1和DF2,这样最终的表就有一个Category(即names)列、DF1的Loss&Win列以及DF2中的Loss2和Win2列。我想这将允许我构建交叉表,我需要一个卡方(见上文)。在
答案1
dict
^{pr2}$lambda
回答2
我不太清楚你想要什么
考虑以下数据帧
d1
和d2
您可以使用
pd.concat
相关问题 更多 >
编程相关推荐