pandas如何将多行中出现的相同号码变成一行多列展示
时间: 2024-05-09 15:21:05 浏览: 74
Python DataFrame一列拆成多列以及一行拆成多行
5星 · 资源好评率100%
可以使用pandas的groupby()和agg()方法来实现将多行中出现的相同号码变成一行多列展示的功能。
假设有一个数据框df,其中包含号码和对应的数值:
```
import pandas as pd
df = pd.DataFrame({
'号码': ['A', 'B', 'A', 'C', 'B', 'C'],
'数值': [1, 2, 3, 4, 5, 6]
})
print(df)
```
输出结果如下:
```
号码 数值
0 A 1
1 B 2
2 A 3
3 C 4
4 B 5
5 C 6
```
现在想要将相同的号码合并成一行,并将对应的数值作为列展示出来,可以使用如下代码:
```
df_grouped = df.groupby('号码')['数值'].agg(lambda x: list(x)).reset_index()
df_pivot = df_grouped.pivot(index=None, columns='号码', values='数值')
print(df_pivot)
```
输出结果如下:
```
A B C
0 [1, 3] [2, 5] [4, 6]
```
其中,groupby()方法将数据框按照号码进行分组,然后对每个分组的数值列进行聚合操作,将每个分组的数值合并成一个列表。最后,使用pivot()方法将聚合后的数据框进行透视,将号码作为列名,数值作为数据填充到对应的列中。
阅读全文