首页 > 解决方案 > 熊猫:从另一个数据框中复制列时出错

问题描述

我正在尝试将预测列从 附加df_Bdf_A

df_A['prediction'] = df_B['prediction']

但该列未正确复制,我收到以下错误:

/Users/edamame/workspace/git/tensorplay/venv/lib/python3.7/site-packages/ipykernel_launcher.py:1: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  """Entry point for launching an IPython kernel.

有没有办法在不循环数据框的情况下正确执行列复制?

标签: pythonpython-3.xpandas

解决方案


如果 df_A 和 df_B 的形状相同,您可以使用 Pandas 的 pd.concat() 功能。

import pandas as pd 

data_A = [['tom', 10], ['nick', 15], ['juli', 14]] 
df_A = pd.DataFrame(data_A, columns = ['Name', 'Age']) 

data_B = [['LA', "M"], ['NY', 'M'], ['SF', 'F']] 
df_B = pd.DataFrame(data_B, columns = ['City', 'Gender']) 

df_B = pd.concat([df_B, df_A[['Name']]], axis = 1)

推荐阅读