gpt4 book ai didi

python - Pandas ,根据条件复制一行

转载 作者:太空宇宙 更新时间:2023-11-04 01:49:44 26 4
gpt4 key购买 nike

我有一个这样的数据框 -

enter image description here

我想要做的是,每当 Col3 中有“X”时,该行应该被复制并且“X”应该更改为“Z”。结果必须是这样的 -

enter image description here

我确实尝试了一些方法,但没有任何效果!有人可以指导如何执行此操作。

最佳答案

可以先按boolean indexing筛选并通过 DataFrame.assignZ 设置为 Col3 , 加入原版 concat , 排序索引 DataFrame.sort_index使用稳定算法 mergesort 并最后创建默认 RangeIndex by DataFrame.reset_index使用 drop=True:

df = pd.DataFrame({
'B':[4,5,4,5,5,4],
'C':[7,8,9,4,2,3],
'Col3':list('aXcdXf'),
'D':[1,3,5,7,1,0],
'E':[5,3,6,9,2,4],
'F':list('aaabbb')
})


df = (pd.concat([df, df[df['Col3'].eq('X')].assign(Col3 = 'Z')])
.sort_index(kind='mergesort')
.reset_index(drop=True))
print (df)
B C Col3 D E F
0 4 7 a 1 5 a
1 5 8 X 3 3 a
2 5 8 Z 3 3 a
3 4 9 c 5 6 a
4 5 4 d 7 9 b
5 5 2 X 1 2 b
6 5 2 Z 1 2 b
7 4 3 f 0 4 b

关于python - Pandas ,根据条件复制一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58297867/

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