【发布时间】:2015-12-17 00:14:59
【问题描述】:
这是一个非常基本的问题,我似乎找不到答案。
我有一个像这样的数据框,叫做 df:
A B C
a.1 b.1 c.1
a.2 b.2 c.2
a.3 b.3 c.3
然后我从 df 中提取所有行,其中列“B”的值为“b.2”。我将这些结果分配给 df_2。
df_2 = df[df['B'] == 'b.2']
df_2 变为:
A B C
a.2 b.2 c.2
然后,我将“B”列中的所有值复制到名为“D”的新列中。导致 df_2 变为:
A B C D
a.2 b.2 c.2 b.2
当我执行这样的任务时:
df_2['D'] = df_2['B']
我收到以下警告:
试图在 DataFrame 中的切片副本上设置值。尝试 使用 .loc[row_indexer,col_indexer] = value 代替
请参阅文档中的注意事项: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
在创建 df_2 时我也尝试过使用 .loc:
df_2 = df.loc[df['B'] == 'b.2']
但是,我仍然收到警告。
非常感谢任何帮助。
【问题讨论】:
-
a.1是什么意思?是字符串吗?