如何使用另一列的 last_valid_index()
上方的索引将 pandas 数据帧的列设置为 NaN。
在[2]中:df
A B
0 1.068932 -0.794307
2 -0.470056 1.192211
4 -0.284561 0.756029
6 1.037563 -0.267820
8 -0.538478 NaN
9. 1.03733 NaN
10.1.037562 NaN
例如: df.B.last_valid_index()
会给出 6
。所以我希望 A 列中的所有行都将 index < 6
设置为 NaN
最终结果应该是:
A B
0 NaN -0.794307
2 NaN 1.192211
4 NaN 0.756029
6 NaN -0.267820
8 -0.538478 NaN
9. 1.03733 NaN
10.1.037562 NaN
最佳答案
last_valid_index
返回行标签。因此使用 df.loc
按标签选择列和行,并分配一个新值:
idx = df['B'].last_valid_index()
df.loc[:idx, 'A'] = np.nan
例如,
import numpy as np
import pandas as pd
nan = np.nan
df = pd.DataFrame({'A': [0, 9, 2, 9, 1, 7, 0], 'B': [4.0, 0.0, 7.0, 7.0, nan, nan, nan]},
index=range(0,13,2))
idx = df['B'].last_valid_index()
df.loc[:idx, 'A'] = np.nan
print(df)
产量
A B
0 NaN 4.0
2 NaN 0.0
4 NaN 7.0
6 NaN 7.0
8 1.0 NaN
10 7.0 NaN
12 0.0 NaN
关于python - 如何使用另一列的 last_valid_index() 将 pandas 数据帧设置为 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38441230/