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