Python 复制列中具有特定值的行

Python 复制列中具有特定值的行,python,pandas,dataframe,Python,Pandas,Dataframe,我必须复制列中具有特定值的行,并用另一个值替换该值 例如,我有以下数据: 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':

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

例如,我有以下数据:

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']})

请帮我做这个。谢谢。

您可以使用
append
,来追加
B==2
的行,您可以使用
loc
提取这些行,也可以使用
assign
B
重新分配给
4
。如果顺序很重要,您可以通过
C
(复制所需的帧)进行排序:


谢谢,但是因为我的列名有空格,所以出现了语法错误。假设列名为“patient name”,则df.patient name不起作用:((如果列名中有空格,也可以使用
df['patient name']
>>> 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