the*_*erd 2 python slice python-3.x pandas
我希望能够根据第一列的值可变地更改列值。
假设我有一个数据框,如下所示:
col_ind col_1 col_2 col_3
3 a b c
2 d e f
1 g h i
Run Code Online (Sandbox Code Playgroud)
我实际上想做
df.loc[:, df.columns[-df['col_ind']:]] = np.nan
Run Code Online (Sandbox Code Playgroud)
这会导致:
col_ind col_1 col_2 col_3
3 nan nan nan
2 d nan nan
1 g h nan
Run Code Online (Sandbox Code Playgroud)
让我们使用广播来检查可以屏蔽的索引
c = df.columns[1:]
m = range(len(c), 0, -1) <= df['col_ind'].values[:, None]
df[c] = df[c].mask(m)
Run Code Online (Sandbox Code Playgroud)
结果
col_ind col_1 col_2 col_3
0 3 NaN NaN NaN
1 2 d NaN NaN
2 1 g h NaN
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |