在pandas数据框中将词汇表更改为值“1”

时间:2017-06-26 14:41:20

标签: python pandas

我有以下数据框。我将使用值1替换ADR中的所有值.Th

Index    ADR
1        Fair
2        good
3        best
4        tr
5        heavy

这是我的代码:

df1['ADR'] = df1.replace(r'\w+', 1, regex=True)
df1['ADR'] = df1.replace(r'\w+',r'\ 1', regex=True)

但是他们都创建了以下数据集:

  Index    ADR
    1        1
    2        2
    3        3
    4        4
    5        5

我需要ADR中的所有值都为“1”。这是期望的输出。

  Index    ADR
    1        1
    2        1
    3        1
    4        1
    5        1

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您需要指定要替换ADR的列:

df1['ADR'] = df1['ADR'].replace(r'\w+', 1, regex=True)
print (df1)
   Index  ADR
0      1    1
1      2    1
2      3    1
3      4    1
4      5    1

另一个解决方案是用dict指定列替换:

df1 = df1.replace({'ADR':{ r'\w+': 1}}, regex=True)
print (df1)
   Index  ADR
0      1    1
1      2    1
2      3    1
3      4    1
4      5    1

但更好的是指定标量,如果需要与指向John Galt相同的所有值:

df1['ADR'] = 1
print (df1)
   Index  ADR
0      1    1
1      2    1
2      3    1
3      4    1
4      5    1