gpt4 book ai didi

python - 在 Pandas 中填充 NaN 的复杂案例

转载 作者:太空宇宙 更新时间:2023-11-04 05:34:04 24 4
gpt4 key购买 nike

有没有办法从这个...

   bloomberg  morningstar  yahoo
0 AAPL1 AAPL2 NaN
1 AAPL1 NaN AAPL3
2 NaN GOOG4 GOOG5
3 GOOG6 GOOG4 NaN
4 IBM7 NaN IBM8
5 NaN IBM9 IBM8
6 NaN NaN FB

...到这个...

   bloomberg  morningstar  yahoo
0 AAPL1 AAPL2 AAPL3
1 GOOG6 GOOG4 GOOG5
2 IBM7 IBM9 IBM8
3 NaN NaN FB

...在 Pandas 中?

我已经对我的数据进行了充分的处理,以确保在起始数据帧的给定列中永远不会有任何“冲突”信息,例如以下是不可能可能的...

   A column  Another column
0 AAPL1 One thing
1 AAPL1 Another thing

唯一可能发生的事情是任何给定的列要么 1) 没有信息要么 2) 正确的信息,例如

   A column  Another column
0 AAPL1 NaN
1 AAPL1 The right information

我想做的就是用可用的“正确”信息填充 NaN,然后​​删除重复项(这应该很容易)。

但一些 NaN 应该保留,因为我没有足够的数据来推断它们的值,例如示例中的 FB 行。

有人有好的答案吗?感谢您的帮助!

如果您想尝试,这里有一些代码可以加载起始数据框:

import pandas as pd
data = [
{'bloomberg': 'AAPL1', 'morningstar': 'AAPL2'},
{'bloomberg': 'AAPL1', 'yahoo': 'AAPL3'},
{'morningstar': 'GOOG4', 'yahoo': 'GOOG5'},
{'bloomberg': 'GOOG6', 'morningstar': 'GOOG4'},
{'bloomberg': 'IBM7', 'yahoo': 'IBM8'},
{'morningstar': 'IBM9', 'yahoo': 'IBM8'},
{'yahoo': 'FB'}]
df = pd.DataFrame(data)

最佳答案

链接 ffillbfill 会做你想做的事:

df.fillna(method='ffill', axis=1).fillna(method='bfill', axis=1).drop_duplicates()

bloomberg morningstar yahoo
0 AAPL AAPL AAPL
2 GOOG GOOG GOOG
4 IBM IBM IBM

关于python - 在 Pandas 中填充 NaN 的复杂案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36188810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com