pandas cumsum 跳过列
pandas cumsum skip column
我是 pandas 的新手,我可以添加到 cumsum as
df.cumsum(axis=1)
y0 y1 y2
0 2 3 4
1 2 2 3
2 0 0 0
3 1 2 3
y0 y1 y2
0 2 5 9
1 2 4 7
2 0 0 0
3 1 3 6
但是有没有办法只对前 2 列执行,即跳过 y2?
您需要排除 y2
,找到 cumsum
并返回 y2
。
pd.concat([df[['y0', 'y1']].cumsum(axis=1),df['y2']], axis=1)
输出:
y0 y1 y2
0 2 5 4
1 2 4 3
2 0 0 0
3 1 3 3
您也可以使用 .loc
来 select 只有您关心的列。
cols = ['y0', 'y1']
df.loc[:, cols] = df.loc[:, cols].cumsum(axis=1)
输出
y0 y1 y2
0 2 5 4
1 2 4 3
2 0 0 0
3 1 3 3
loc
是一种灵活的分割 DataFrame 的方法,通常遵循以下格式:
.loc[row_labels, column_labels]
其中 :
可用于指示所有行,或 all_columns.
我是 pandas 的新手,我可以添加到 cumsum as
df.cumsum(axis=1)
y0 y1 y2
0 2 3 4
1 2 2 3
2 0 0 0
3 1 2 3
y0 y1 y2
0 2 5 9
1 2 4 7
2 0 0 0
3 1 3 6
但是有没有办法只对前 2 列执行,即跳过 y2?
您需要排除 y2
,找到 cumsum
并返回 y2
。
pd.concat([df[['y0', 'y1']].cumsum(axis=1),df['y2']], axis=1)
输出:
y0 y1 y2
0 2 5 4
1 2 4 3
2 0 0 0
3 1 3 3
您也可以使用 .loc
来 select 只有您关心的列。
cols = ['y0', 'y1']
df.loc[:, cols] = df.loc[:, cols].cumsum(axis=1)
输出
y0 y1 y2
0 2 5 4
1 2 4 3
2 0 0 0
3 1 3 3
loc
是一种灵活的分割 DataFrame 的方法,通常遵循以下格式:
.loc[row_labels, column_labels]
其中 :
可用于指示所有行,或 all_columns.