python - pandas:聚合以保留第一个非 NaN 值

标签 python pandas

我有一个数据框 test_num作为索引:

file_num    6    7
test_num          
79        NaN    ↑
148         ↑  NaN

我需要减少它以保持任何 file_num 的第一个可用方向(箭头) :

           direction
test_num          
79          ↑
148         ↑

我已经尝试过这个:

fd.agg(lambda x: [a for a in x if a][0], axis=1)

test_num
79     NaN
148      ↑

fd.agg(lambda x: [a for a in x if a != pd.np.nan][0], axis=1)

test_num
79     NaN
148      ↑

如何在这里做我需要的事情?

最佳答案

您可以在groupby中使用统一数组

df.groupby([*'A'*len(df.columns)], 1).first()

          A
test_num   
79        ↑
148       ↑
<小时/>

或者使用可调用来达到相同的效果

df.groupby(lambda x: 'A', 1).first()

          A
test_num   
79        ↑
148       ↑

关于python - pandas:聚合以保留第一个非 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51972517/

相关文章:

python - 如何在 Pandas 中获取盘中价格 - 成交量图?

arrays - 迭代列表中的键值对并转换为 pandas 数据帧

python - 具有多索引的 Pandas Dataframe 中 2 列之间的差异

python - geopandas GeoDataFrame 使用 gdf.astype() 转换为 pandas DataFrame

python - 'obj'参数是如何传递给Django Rest Framework中的Permission类函数的?

python - 如何编写测试并发性的 Tornado 单元测试

python - 通过 Powershell Invoke-RestMethod 上传分段文件

python - 如何左右旋转列表?

python - 使用 Python 的 numpy 实现随机梯度下降

python - 在一列中给出相同的值,连接剩余的行?