gpt4 book ai didi

python - 如何根据值拆分 pandas 中的一列并创建新列?

转载 作者:行者123 更新时间:2023-12-01 01:27:11 24 4
gpt4 key购买 nike

我有一个像这样的数据框:

df1 = pd.DataFrame({
'testName': [4402, 4402 ,5555,6753,1234,9876,3602],
'endResult': ['WARNING', 'WARNING', 'FAILED', 'FAILED','WARNING','FAILED','WARNING'],
})

我想实现这个:

df = pd.DataFrame({
'testName':[4402, 4402 ,5555,6753,1234,9876,3602],
'WARNING':[4402,4402,0,0,1234,0,3602],
'FAILED':[0,0,5555,6753,0,9876,0]
})

我该怎么做?

最佳答案

使用pivot ,像这样:

df = (df1.reset_index()
.pivot('index', 'endResult', 'testName')
.fillna(0, downcast='infer')
print(df)
endResult FAILED WARNING
index
0 0 4402
1 0 4402
2 5555 0
3 6753 0
4 0 1234
5 9876 0
6 0 3602

或者,set_index使用MultiIndex.from_arraysunstack在最后一级。

idx = pd.MultiIndex.from_arrays([df1.index, df1.endResult, ])
df = df1.set_index(idx).testName.unstack(fill_value=0)

print(df)
endResult FAILED WARNING
0 0 4402
1 0 4402
2 5555 0
3 6753 0
4 0 1234
5 9876 0
6 0 3602
<小时/>

删除索引
(1)打印

print(df.to_string(index=False))
FAILED WARNING
0 4402
0 4402
5555 0
6753 0
0 1234
9876 0
0 3602

(2)保存为CSV

df.to_csv('data.csv', index=False)

关于python - 如何根据值拆分 pandas 中的一列并创建新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53235546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com