复制列中具有特定值的行

Yun*_*ang 2 python dataframe pandas

我必须复制列中具有特定值的行,并将该值替换为另一个值.

例如,我有这些数据:

import pandas as pd    
df = pd.DataFrame({'Date': [1, 2, 3, 4], 'B': [1, 2, 3, 2], 'C': ['A','B','C','D']})
Run Code Online (Sandbox Code Playgroud)

现在,我想复制"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']})
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题.谢谢.

sac*_*cuL 5

您可以使用append,追加其中的行B == 2,你可以使用提取loc,同时也重新分配B4使用assign.如果订单很重要,您可以订购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
Run Code Online (Sandbox Code Playgroud)