Обновление фрейма данных 2 влияет на фрейм данных 1, который был источником фрейма данных 2 - PullRequest
0 голосов
/ 22 октября 2018

Я добавляю обратный кадр данных к исходному.Казалось, что все работает, но потом я понял: df1 сначала имел ids (1,1,1,2,2).Я применил функцию df2['id'] = df2['id'].apply(lambda x: x + id_amount) к df2 не к df1, но в любом случае, когда я добавляю df2 к df1, ее ids тоже изменилась.Как это может быть?Почему df1 принимает df2 значения столбца id

import pandas as pd
df1 = pd.DataFrame({'x':[1,1,2,9,9], 'y':[1,2,2,100,101],'id':[1,1,1,2,2]})
df2= df1[::-1]   #df2 as reverse of df1
print(df1)
id_amount=df2['id'].nunique()
df2['id'] = df2['id'].apply(lambda x: x + id_amount) 
df2=df2.sort_values(by=['id'])
df1=df1.append(df2)
df1 = df1.reset_index(drop=True)
print(df1)

Здесь df1 до и после:

#before
x   y   id 
1   1    1     
1   2    1     
2   2    1     
9  100   2     
9  101   2     

становится:

#after
x   y     id 
1   1      3     
1   2      3     
2   2      3     
9  100     4     
9  101     4     
2   2      3     
1   2      3     
1   1      3     
9  101     4     
9  100     4

должно стать:

x   y     id 
1   1      1     
1   2      1     
2   2      1     
9  100     2     
9  101     2     
2   2      3     
1   2      3     
1   1      3     
9  101     4     
9  100     4  

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вы можете сделать это с concat и sort_index, а затем прибегнуть к концу.

import pandas as pd
df1 = pd.DataFrame({'x':[1,1,2,9,9], 'y':[1,2,2,100,101],'id':[1,1,1,2,2]})

df1 = (pd.concat([df1, df1.assign(id=df1.id+df1.id.max()).sort_index(ascending=False)], ignore_index=True)
           .sort_values('id')
           .reset_index(drop=True))

   x    y  id
0  1    1   1
1  1    2   1
2  2    2   1
3  9  100   2
4  9  101   2
5  2    2   3
6  1    2   3
7  1    1   3
8  9  101   4
9  9  100   4
0 голосов
/ 22 октября 2018

Использование copy:

df2 = df1[::-1].copy() 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...