我目前在熊猫文档中深陷其中。我的问题是:
我有一个简单的数据框
col1 col2
1 A
4 B
5 X
我的目标是应用以下内容:
df['col1'] = df['col1'].apply(square)
其中square是一个干净定义的函数。 但是此操作会抛出错误警告(并产生不正确的结果)
正在尝试在DataFrame的切片副本上设置值。 尝试使用.loc [row_indexer,col_indexer] = value而不是
我无法理解这一点,也无法理解它所指出的文档。我的工作流程是线性的(如果这使得更广泛的解决方案可行)。
Pandas 0.17.1和Python 2.7
所有人都非常感谢。
答案 0 :(得分:2)
它适合我(熊猫0.18.1):
In [31]: def square(x):
....: return x ** 2
....:
In [33]: df
Out[33]:
col1 col2
0 1 A
1 4 B
2 5 X
In [35]: df.col1 = df.col1.apply(square)
In [36]: df
Out[36]:
col1 col2
0 1 A
1 16 B
2 25 X
PS它也可能取决于你的功能的实现......
答案 1 :(得分:0)
您可以使用.loc
命令消除警告
df.loc[:'col1'] = df['col1'].apply(square)