【发布时间】:2017-07-27 13:28:50
【问题描述】:
我想将dataframe“result”的“q1_body”和“q2_body”列的值替换为dataframe“df”中相同id的“body”的值,代码如下:
def replace_body(x):
id1 = result.loc[x].qid1
result.loc[x].q1_body = df[df["qid"]==id1]["body"]
id2 = result.loc[x].qid2
result.loc[x].q2_body = df[df["qid"]==id2]["body"]
result.index.map(lambda x: replace_body(x))
当我运行代码时,我在 ipython 控制台中收到以下提醒,而程序只是卡在这里:
//anaconda/lib/python3.6/site-packages/pandas/core/generic.py:3110:
SettingWithCopyWarning:
正在尝试在 DataFrame 中的切片副本上设置值请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
自我[名称] = 价值
希望有人能告诉我这里出了什么问题。
假设两个数据框是:
结果:
qid1 q1_body qid2 q2_body
1a abc 2a bcd
1a abc 3a cde
2a bcd 3a cde
df:
qid body
1a sfgaks
2a shdfjk
3a adjkwf
预期的输出是这样的:
结果:
qid1 q1_body qid2 q2_body
1a sfgaks 2a shdfjk
1a sfgaks 3a adjkwf
2a shdfjk 3a adjkwf
【问题讨论】:
标签: python-3.x pandas dataframe