MikiBelavista
MikiBelavista

Reputation: 2738

Why was my dataframe column changed?

My code

import pandas as pd
import numpy as np

series = pd.read_csv('o1.csv', header=0)

s1 = series
s2 = series

s1['userID'] = series['userID'] + 5
s1['adID'] = series['adID'] + 3
s2['userID'] = s1['userID'] + 5
s2['adID'] = series['adID'] + 4

r1=series.append(s1)
r2=r1.append(s2)

print(r2)

I got something wrong,now columns are exactly the same. Output

    userID gender  adID  rating
0       11      m   107      50
1       11      m   108     100
2       11      m   109       0
3       12      f   107      50
4       12      f   108     100
5       13      m   109      62
6       13      m   114      28
7       13      m   108      36
8       12      f   109      74
9       12      f   114     100
10      14      m   108      62
11      14      m   109      28
12      15      f   116      50
13      15      f   117     100
0       11      m   107      50
1       11      m   108     100
2       11      m   109       0

I didn't want my series column to be changed. Why did it happened? How to change this? Do I need to use iloc?

Upvotes: 1

Views: 33

Answers (1)

jezrael
jezrael

Reputation: 863166

IIUC need copy if need new object DataFrame:

s1 = series.copy()
s2 = series.copy()

Sample:

print (df)
   userID gender  adID  rating
0      11      m   107      50
1      11      m   108     100
2      11      m   109       0


s1 = df.copy()
s2 = df.copy()

s1['userID'] = df['userID'] + 5
s1['adID'] = df['adID'] + 3
s2['userID'] = s1['userID'] + 5
s2['adID'] = df['adID'] + 4

r1=df.append(s1)
r2=r1.append(s2)

print(r2)
   userID gender  adID  rating
0      11      m   107      50
1      11      m   108     100
2      11      m   109       0
0      16      m   110      50
1      16      m   111     100
2      16      m   112       0
0      21      m   111      50
1      21      m   112     100
2      21      m   113       0

Upvotes: 2

Related Questions