python - 如何将值从 1 列分配给另一列并在 Pandas 中发出警告

标签 python pandas

我有一个包含 56 列的 pandas DF。其中 2 列(X 和 Y)为空,我想复制存储在同一个 DF 中的 2 个不同列中的值。现在,我设法做到了,但我收到警告:

试图在 DataFrame 的切片副本上设置一个值。 尝试使用 .loc[row_indexer,col_indexer] = value 代替

我也试过这个版本,但仍然收到警告。到目前为止,这是我的语法:

subset = df[(df.Longitude.isnull()) & (df.Latitude.isnull())]
subset.Longitude = subset.x2
subset.Latitude = subset.y2

关于如何在没有收到警告通知的情况下执行此操作的想法?谢谢。

最佳答案

填充

这就是你应该做的。将字典传递给 fillna,指定用什么填充每一列。字典的键映射到列名。因此,在下面,用 df.x2 中的相应值填充 'Longitude' 列的缺失值。

df.fillna({'Longitude': df.x2, 'Latitude': df.y2})

位置

但要回答您的问题并排除任何其他问题。

mask = df.Longitude.isna() & df.Latitude.isna()
df.loc[mask, ['Longitude', 'Latitude']] = df.loc[mask, ['x2', 'y2']].to_numpy()

不是很有用

因为大多数人觉得这很难阅读

mask = df.Longitude.isna() & df.Latitude.isna()
df.loc[mask, 'Longitude'], df.loc[mask, 'Latitude'] = map(df.get, ['x2', 'y2'])

df

关于python - 如何将值从 1 列分配给另一列并在 Pandas 中发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56977605/

相关文章:

python - 解析 Python 表达式而不求值

python - Jupyter 笔记本中的 Numpy 负载 "IOPub data rate exceeded."

python - 通过迭代替换 Pandas DataFrame 中的数组值

python - Matplotlib plt.plot_date() 如何根据第三列设置点的颜色

python - 将行附加到数据框,如果不存在则添加新列

python - Python 的类似 Erlang 的并发性?

python - 是否真的没有用于 python/jython 等的基于事件的所见即所得 Gui 构建器

python - 如何根据另一列统计某个值在DataFrame中出现的次数?

python - 在 python 脚本中,我有插入查询,但是当我想在同一个查询中插入多个列时,它会给出错误

python - 如何在将数据推送到 MSSQL 之前删除所有特殊字符