我尝试将多个csv文件加载到单个数据帧df中,同时:
所有这一切都正常,直到我尝试使用usecols排除列,这会引发错误Too many columns specified: expected 5 and found 4
。
是否可以同时创建新列并传递usecols?
我创造的原因&填充一个新的电台' read_csv期间的列是我的数据帧将包含来自多个站的数据。我可以通过在一个语句中执行read_csv并使用df.drop('QD', axis=1, inplace=True)
删除下一个QD列来解决错误,但是要确保我了解如何以最可能的方式执行此操作。
这里是抛出错误的代码:
df = pd.concat(pd.read_csv("http://lgdc.uml.edu/common/DIDBGetValues?ursiCode=" + row['StationCode'] + "&charName=MUFD&DMUF=3000",
skiprows=17,
delim_whitespace=True,
parse_dates=[0],
usecols=['Time','CS','MUFD','Station'],
names=['Time','CS','MUFD','QD','Station']
).fillna(row['StationCode']
).set_index(['Time', 'Station'])
for index, row in stationdf.iterrows())
来自stationdf BC840
的示例StationCode。
数据样本2016-09-19T00:00:05.000Z 100 19.34 //
答案 0 :(得分:0)
您可以使用assign
的操作员链接创建新列:
df = pd.read_csv(...).assign(StationCode=row['StationCode'])