python - 如何使用另一列的 last_valid_index() 将 pandas 数据帧设置为 NaN

标签 python pandas

如何使用另一列的 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/

相关文章:

python - 在没有命令行工具 (fab) 的情况下使用 Python Fabric

python - 计算图像上的水滴数量

python - 用 Pandas 选择前 n 列和最后 n 列

python - 从 Pandas 上传到 S3 时如何添加标签?

Python检测系统默认小数点分隔符(Pandas)

python - 有没有更好的方法来打印这些键值对?

python - 如何在 PySpark 2.1.0 中通过事件时间窗口定义 UDAF

python - 集合对象不是 PyMongo 的可调用错误

python - 使用列中的部分字符串来计算和填充 Pandas 数据框中的另一列

python - 将嵌套的 JSON 读入 Dask DataFrame