我必须在列中复制具有特定值的行,然后用另一个值替换该值。
例如,我有以下数据:
import pandas as pd
df = pd.DataFrame({'Date': [1, 2, 3, 4], 'B': [1, 2, 3, 2], 'C': ['A','B','C','D']})
现在,我想复制列“ B”中具有2的行,然后将2更改为4
df = pd.DataFrame({'Date': [1, 2, 2, 3, 4, 4], 'B': [1, 2, 4, 3, 2, 4], 'C': ['A','B','B','C','D','D']})
请帮助我解决这一问题。谢谢。
答案 0 :(得分:5)
您可以使用append
将行B == 2
附加到loc
处,您可以使用B
提取这些行,也可以使用{将4
重新分配给assign
{1}}。如果订购很重要,则可以按C
订购(以复制所需的相框):
>>> df.append(df[df.B.eq(2)].assign(B=4)).sort_values('C')
B C Date
0 1 A 1
1 2 B 2
1 4 B 2
2 3 C 3
3 2 D 4
3 4 D 4