Я добавляю обратный кадр данных к исходному.Казалось, что все работает, но потом я понял: 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