Python 熊猫快速运动
我有这样一个数据集:Python 熊猫快速运动,python,pandas,Python,Pandas,我有这样一个数据集: ID Type Value 01 A $10 01 B $12 01 C $14 02 B $20 02 C $21 03 B $11 我想将其转换为: ID TypeA TypeB TypeC 01 $10 $12 $14 02 $0 $20 $21 03 $0 $11 $0 我唯一的解决方案是一堆if循环,但没有几个线性循环。有人能帮我解决这个python(熊猫)问题吗 谢谢将前两列转换为多索引(两级索
ID Type Value
01 A $10
01 B $12
01 C $14
02 B $20
02 C $21
03 B $11
我想将其转换为:
ID TypeA TypeB TypeC
01 $10 $12 $14
02 $0 $20 $21
03 $0 $11 $0
我唯一的解决方案是一堆if循环,但没有几个线性循环。有人能帮我解决这个python(熊猫)问题吗
谢谢将前两列转换为多索引(两级索引)。取消数据帧的堆栈(将第二个级别的行索引转换为列索引)。用
“$”
填补空白:
更新列名:
d.columns = 'Type' + d.columns.levels[1]
结果是:
Type TypeA TypeB TypeC
ID
01 $10 $12 $14
02 $0 $20 $21
03 $0 $11 $0
如果索引名'Type'
困扰您,请禁用它:
d.columns.name = None
最后,如果希望ID是列而不是索引,请重置索引:
d.reset_index(inplace=True)
最终结果:
ID TypeA TypeB TypeC
0 01 $10 $12 $14
1 02 $0 $20 $21
2 03 $0 $11 $0
你可以用熊猫
试试这个
import pandas as pd
我为您的示例数据创建了一个名为psort.txt的数据文件
ID,Type,Value
01,A,$10
01,B,$12
01,C,$14
02,B,$20
02,C,$21
03,B,$11
并进口,
df = pd.read_csv('psort.txt', header=0)
ID Type Value
0 1 A $10
1 1 B $12
2 1 C $14
3 2 B $20
4 2 C $21
5 3 B $11
然后我旋转数据帧
df=df.pivot(index='ID',columns='Type', values='Value')
下面我用0填充NaN值,但可以用“$0”填充
df=df.fillna(0)
print(df)
Type A B C
ID
1 $10 $12 $14
2 0 $20 $21
3 0 $11 0
尝试df.pivot(index='ID',columns='Type')
df=df.fillna(0)
print(df)
Type A B C
ID
1 $10 $12 $14
2 0 $20 $21
3 0 $11 0