Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用另一列的最后一个有效索引()将pandas dataframe设置为NaN_Python_Pandas - Fatal编程技术网

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