【发布时间】:2020-07-30 19:38:55
【问题描述】:
我在 Pandas DataFrame 中有一个包含连续数字的列。
A
1
2
3
4
我想将所有这些值更改为一个简单的字符串,比如“foo”,结果是
A
foo
foo
foo
foo
【问题讨论】:
我在 Pandas DataFrame 中有一个包含连续数字的列。
A
1
2
3
4
我想将所有这些值更改为一个简单的字符串,比如“foo”,结果是
A
foo
foo
foo
foo
【问题讨论】:
只需选择列并像往常一样分配:
In [194]:
df['A'] = 'foo'
df
Out[194]:
A
0 foo
1 foo
2 foo
3 foo
分配一个标量值会将所有行设置为相同的标量值
【讨论】:
上面的好答案会引发警告。你也可以这样做:
df.insert(0, 'A', 'foo')
其中 0 是插入新列的索引。
【讨论】:
可以使用assign的方法:
df = df.assign(A='foo')
【讨论】:
你也可以试试pd.Series.replace:
df['A'] = df['A'].replace(df['A'], 'foo')
print(df)
输出:
A
0 foo
1 foo
2 foo
3 foo
【讨论】:
您还可以利用.loc 属性的强大功能,使用: 作为对行进行寻址的参数来寻址所有行。假设您的 DataFrame 名为 df。
In [1]:
df.loc[:,'A'] = 'foo'
df
Out[2]:
A
0 foo
1 foo
2 foo
3 foo
【讨论】: