如何将一个数据帧转换成一个正方形的数据帧,并将其他列中的交叉数作为值

2024-06-17 12:12:48 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将一个数据帧转换成一个正方形的数据帧,其中值列中的交叉数作为值

我的输入数据帧是

field    value
a          1
a          2
b          3
b          1
c          2
c          5

输出应为

  a b c
a 2 1 1
b 1 2 0
c 1 0 2

输出数据框中的值应该是值列中值的交集数


Tags: 数据fieldvalue交叉正方形
1条回答
网友
1楼 · 发布于 2024-06-17 12:12:48

^{}使用交叉联接:

df = df.merge(df, on='value')
df = pd.crosstab(df['field_x'], df['field_y'])
print (df)

field_y  a  b  c
field_x         
a        2  1  1
b        1  2  0
c        1  0  2

然后按^{}删除索引和列名:

#pandas 0.24+
df = pd.crosstab(df['field_x'], df['field_y']).rename_axis(index=None, columns=None)
print (df)
   a  b  c
a  2  1  1
b  1  2  0
c  1  0  2

#pandas bellow
df = pd.crosstab(df['field_x'], df['field_y']).rename_axis(None).rename_axis(None, axis=1)

相关问题 更多 >