This is a very basic question, I just can not seem to find an answer.
I have a dataframe like this, called df
:
A B C
a.1 b.1 c.1
a.2 b.2 c.2
a.3 b.3 c.3
Then I extract all the rows from df
, where column B
has a value of 'b.2'. I assign these results to df_2
.
df_2 = df[df['B'] == 'b.2']
df_2
becomes:
A B C
a.2 b.2 c.2
Then, I copy all the values in column B
to a new column named D
. Causing df_2
to become:
A B C D
a.2 b.2 c.2 b.2
When I preform an assignment like this:
df_2['D'] = df_2['B']
I get the following warning:
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 the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
I have also tried using loc
when creating df_2
like this:
df_2 = df.loc[df['B'] == 'b.2']
However, I still get the warning.
Any help is greatly appreciated.