python - Pandas,根据条件复制行

标签 python pandas

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

enter image description here

我想要做的是,只要 Col3 中有“X”,该行就应该重复,并且“X”应该更改为“Z”。结果必须如下所示 -

enter image description here

我确实尝试了一些方法,但没有任何效果! 有人可以指导如何做到这一点吗?

最佳答案

您可以先按 boolean indexing 进行过滤并按 DataFrame.assignZ 设置为 Col3 ,与原件一起加入 concat ,按 DataFrame.sort_index 排序索引使用稳定算法mergesort并最后通过DataFrame.reset_index创建默认RangeIndexdrop=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/

相关文章:

python - 转换为 Pandas Dataframe 的 True/False 值

python - 使用 For 循环更改 DataFrame 列 (Pandas) 中的数据

pandas - 对 Pandas 数据框中的列进行类型转换

python - 如何从Python中的文本文件中提取特定内容?

python - 在 NumPy 中,创建更大的数组会更快吗?

python - 我的变量不包括使用 sublime.get_clipboard() sublime text 插件复制的所有文本

python - 如何在 python 中使用多重处理附加到类变量?

python - 如何让 Pandas 忽略标题行开头的 `#` ?

python - pd.DataFrame 上的 np.where 用于非零索引字典

python - 向 oanda 发送订单