我想做的是构建一个执行以下操作的函数(伪代码):
def update(original_information, new_information):
... stuff ...
return updated_information
上面的输入和输出都是Pandas数据帧,它们都可以包含许多nan。在
原始信息的示例:
^{pr2}$新信息的一个例子:
import pandas as pd
columns = ['edgar', 'morningstar', 'yahoo']
companies = [{'morningstar': 'AAPL', 'yahoo': 'AAPL'}, {'morningstar': 'XPAR:SGO', 'yahoo': 'SGO.PA'}]
new_information = pd.DataFrame(companies, columns=columns).sort_values('yahoo').reset_index(drop=True)
edgar morningstar yahoo
0 NaN AAPL AAPL
1 NaN XPAR:SGO SGO.PA
理想情况下,我的更新功能可以完成三件事:
换句话说,我希望更新的_信息如下所示:
edgar morningstar yahoo
0 00000320193 AAPL AAPL
1 NaN XPAR:SGO SGO.PA
然而,我还没弄明白怎么做
我所拥有的是:
def update(original_information, new_information):
result = pd.concat([original_information, new_information], ignore_index=True)
result = result.drop_duplicates(subset='yahoo', keep='last').sort_values('yahoo').reset_index(drop=True)
return result
返回:
edgar morningstar yahoo
0 NaN AAPL AAPL
1 NaN XPAR:SGO SGO.PA
哪个。。。在
已成功将“XYZ”替换为XPAR:SGO公司'在牢房(1,晨星)
已成功使用“AAPL”更新单元格(0,晨星)
但不幸的是删除单元格(0,edgar)中的“000320192”,而不是保留它
有什么建议吗?在
我认为您可以只使用^{} ,因为它只在更新时使用来自新数据的非NA值。在
相关问题 更多 >
编程相关推荐