使用多列进行排序计算列并将其添加到数据框
Calculate and add columns to a data frame using multiple columns for sorting
我有一个非常简单的数据框,包含 A、B、C 列,我想添加几个。我想创建两个累积求和列并将它们存储在同一个数据框中。目前我正在通过创建两个顺序不同的不同数据框然后在同一张图上绘制结果来做到这一点,但我猜有一种更有效的方法。我要创建的列是:
(1) D 列 = C 列的累积总和,按 A 列中的值递增排序
(2) E 列 = C 列的累计总和按 B 列中的值递减排序
这应该有效:
# Cumsum helps us get the cummulative sum and we sort after for correct order of column
df = pd.read_csv('Sample.csv')
df.insert(3,'D',df.sort_values(by = ['A']).C.cumsum().sort_values().values)
df.insert(4,'E',df.sort_values(by = ['B'], ascending = False).C.cumsum().sort_values().values)
print(df)
A B C D E
0 1 0.1 1 1 2
1 2 0.3 3 4 3
2 3 0.6 1 5 6
3 4 0.7 2 7 8
4 5 0.3 2 9 9
我有一个非常简单的数据框,包含 A、B、C 列,我想添加几个。我想创建两个累积求和列并将它们存储在同一个数据框中。目前我正在通过创建两个顺序不同的不同数据框然后在同一张图上绘制结果来做到这一点,但我猜有一种更有效的方法。我要创建的列是: (1) D 列 = C 列的累积总和,按 A 列中的值递增排序 (2) E 列 = C 列的累计总和按 B 列中的值递减排序
这应该有效:
# Cumsum helps us get the cummulative sum and we sort after for correct order of column
df = pd.read_csv('Sample.csv')
df.insert(3,'D',df.sort_values(by = ['A']).C.cumsum().sort_values().values)
df.insert(4,'E',df.sort_values(by = ['B'], ascending = False).C.cumsum().sort_values().values)
print(df)
A B C D E
0 1 0.1 1 1 2
1 2 0.3 3 4 3
2 3 0.6 1 5 6
3 4 0.7 2 7 8
4 5 0.3 2 9 9