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

时间:2018-11-04 04:37:33

标签: 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': ['A','B','B','C','D','D']})

请帮助我解决这一问题。谢谢。

1 个答案:

答案 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