[英]How do I turn a Pandas DataFrame object with 1 main column into a Pandas Series with the index column from the original DataFrame
[英]How do I generate a new column subtracting the sorted one from the original in a pandas DataFrame?
這是我的 pandas DataFrame
>>> df
grades
0 69.233627
1 70.130900
2 83.357011
3 88.206387
4 74.342212
排序它給出了這個
df.sort_values(by=['grades'])
grades
0 69.233627
1 70.130900
4 74.342212
2 83.357011
3 88.206387
我試圖獲得一個新的列difference
,即每一行的值都是從原始列中減去排序后的差異。
但是,此代碼不起作用
df['difference'] = df - df.sort_values(by=['grades'])
給我
grades
0 0.0
1 0.0
2 0.0
3 0.0
4 0.0
我錯過了什么?
可以預期,因為 epandas 默認按索引值對齊,所以在減去原始df.index
的重新排序之前,得到0
值。 為防止可能將值轉換為 numpy 數組並僅減去Series
,例如:
df['difference'] = df['grades'] - df['grades'].sort_values().to_numpy()
如果原始DataFrame
中的默認索引也可以將索引設置為 RangeIndex,例如:
df['difference'] = df['grades'] - df['grades'].sort_values().reset_index(drop=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.