这将写入所有记录,包括空的PbRatio。我只想写入最后一个非空的记录。当我添加df[df.asOfDate == df.asOfDate.max()].to_csv
时,它会得到最后一个记录,它总是空的。
import pandas as pd
from yahooquery import Ticker
symbols = ['AAPL','GOOG','MSFT','NVDA']
header = ["asOfDate","PbRatio"]
for tick in symbols:
faang = Ticker(tick)
faang.valuation_measures
df = faang.valuation_measures
try:
for column_name in header :
if column_name not in df.columns:
df.loc[:,column_name ] = None
df.to_csv('output.csv', mode='a', index=True, header=False, columns=header)
except AttributeError:
continue
电流输出:
预期输出:
2条答案
按热度按时间sr4lhrrt1#
这应该可以,只需要过滤df中的not Nan值和max
asOfDate
。odopli942#
这里我创建了一个虚拟数据来处理,如果你提供数据就更好了。
然后删除缺少值的行
这看起来像这样:
我得到一组唯一名称,这是您拥有的任何"AAPL "/" NVDA"列
创建一个新的 Dataframe ,在其中我只获取每个唯一名称的最后一行,在我的示例中是"A"和"B"。在您的示例中应该是"AAPL "/" NVDA"。
这看起来应该像