gpt4 book ai didi

python - 合并两个 Pandas 交叉表 : Index and Col Name Issues

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:39 25 4
gpt4 key购买 nike

这是一个由两部分组成的问题:

1) 我有两个交叉表,我希望在一个 df 中。我需要更改列名。我以为这很容易。文档让它看起来很简单。框架的顶部如下所示:

Category    0.0 1.0
Name
Bob 1 0

我希望它看起来像这样:

Category    Loss Win
Name
Bob 1 0

当我尝试 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) 我梦想将上面的内容加入到另一个交叉表中。我认为内部联接可能会起作用。如果名字出现在两个交叉表中,我希望它们出现在我的合并表中,如果没有出现,那就忘记它们。但是,由于左表中的某些名称(我们称其为左表上方的表)没有出现在右表中(我在类别列上加入,它只是一个名称列表),内部连接是不行的。我的最终目标是使用看起来像的交叉频率表进行卡方检验。 . .

           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 中出现的那些名称上加入 DF1 和 DF2,以便最终表具有类别(即名称)列、来自 DF1 的 Loss & Win 列以及来自 DF2 的 Loss2 和 Win2 列。我假设这将允许我构建卡方所需的交叉表(见上文)。

最佳答案

答案 1
字典

df.rename(columns={1: 'Win', 0: 'Loss'})

Category Loss Win
Name
Bob 1 0

lambda

df.rename(columns=lambda x: 'Win' if x else 'Loss')

Category Loss Win
Name
Bob 1 0

答案 2
我不太清楚你想要什么

考虑以下数据帧 d1d2

np.random.seed([3,1415])
d1 = pd.DataFrame(
np.random.randint(10, size=(10, 2)),
pd.Index(list('ABCDEFGHIJ'), name='Name'),
pd.Index(['Loss', 'Win'], name='Category1')
)
d2 = pd.DataFrame(
np.random.randint(10, size=(10, 2)),
pd.Index(list('ABCDEFGHIJ'), name='Name'),
pd.Index(['Loss', 'Win'], name='Category2')
)

你可以使用pd.concat

df = pd.concat({d.columns.name: d for d in [d1, d2]}, axis=1)
df

Category1 Category2
Category1 Loss Win Loss Win
Name
A 0 2 3 6
B 7 3 7 7
C 8 7 4 5
D 0 6 3 7
E 8 6 5 9
F 0 2 8 7
G 0 4 6 4
H 9 7 7 6
I 3 2 2 6
J 4 3 6 5

关于python - 合并两个 Pandas 交叉表 : Index and Col Name Issues,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43767368/

25 4 0
文章推荐: python - 匹配两个数据框之间的字符串并创建列
文章推荐: javascript - AJAX 页面重定向正确。但由于重定向传递的数据要刷新
文章推荐: html - Mozilla Firefox CSS 无法在
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com