这是一个非常基本的问题,我似乎无法找到答案.
我有一个这样的数据帧,称为df:
A B C
a.1 b.1 c.1
a.2 b.2 c.2
a.3 b.3 c.3
Run Code Online (Sandbox Code Playgroud)
然后我从df中提取所有行,其中列'B'的值为'b.2'.我将这些结果分配给df_2.
df_2 = df[df['B'] == 'b.2']
Run Code Online (Sandbox Code Playgroud)
df_2成为:
A B C
a.2 b.2 c.2
Run Code Online (Sandbox Code Playgroud)
然后,我将列'B'中的所有值复制到名为'D'的新列中.导致df_2成为:
A B C D
a.2 b.2 c.2 b.2
Run Code Online (Sandbox Code Playgroud)
当我执行这样的任务时:
df_2['D'] = df_2['B']
Run Code Online (Sandbox Code Playgroud)
我收到以下警告:
尝试在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']
Run Code Online (Sandbox Code Playgroud)
但是,我仍然收到警告.
任何帮助是极大的赞赏.