Python 如何使用另一列的最后一个有效索引()将pandas dataframe设置为NaN
如何使用另一列的Python 如何使用另一列的最后一个有效索引()将pandas dataframe设置为NaN,python,pandas,Python,Pandas,如何使用另一列的last\u valid\u index()上方的索引将数据帧的列设置为NaN In[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\u valid\u index()将给出6
last\u valid\u index()
上方的索引将数据帧的列设置为NaN
In[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\u valid\u index()
将给出6
。所以我希望A列中索引<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\u valid\u index
返回行标签。因此,使用按标签选择列和行,并指定新值:
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