Pandas:返回视图与副本,元组构造

时间:2018-04-11 03:53:35

标签: python python-3.x pandas

环境:Python 3.6,Pandas

我有一行代码:

df['column_1'][df['column_2'].str.contains('keyword')] = df['column_3']

该代码旨在查看column_2,如果keyword存在,则将column_1字符串设置为column_3中的内容。它工作正常,并做我期望的。但它会抛出this警告:A value is trying to be set on a copy of a slice from a DataFrame

根据我改为的文档和示例:

df.loc[:,('column_1', df['column_2'].str.contains('keyword'))] = df['column_3']

但是,此代码抛出:ValueError: setting an array element with a sequence

我认为错误是元组的第二个元素的结果。还有另一个例子here使用相同的结构(我可以在没有错误的情况下运行它)。还有其他几个类似的问题,但没有一个问题涉及对元组中列的搜索。所以这缩小到如何以一种在元组中工作的方式编写df['column_2'].str.contains('keyword')

或者还有其他我想念的东西?

更新

经过更多研究后,我可能会通过

设置column_1
df['column_1'] = np.nan    #numpy NaN

似乎列的构造方式也会导致此类错误。作为NaN的dtype是float64。我已经尝试重铸.astype(str)而没有任何改变。

0 个答案:

没有答案