我有 n 个pandas series
.它们大多具有相同数量的数据,但并非总是如此。
print(str(len(dfS1)))
print(str(len(dfS2)))
print(str(len(dfS3)))
print(str(len(dfS4)))
3025
3026
3025
3026
我需要确保每行都正确对齐,例如:
dfj = dfS1.join(dfS2, how='outer', rsuffix='_1').join(dfS3, how='outer', rsuffix='_2').join(dfS4, how='outer', rsuffix='_3')
但是,如果我打印出结果dataframe
dfj ,
print(dfj)
date close date_1 close_1 date_2 close_2 date_3
0 2007-01-24 143.99 2007-01-24 44.29 2007-01-25 124.80 2007-01-25
close_3
0 77.80
....
如您所见,联接的行未对齐。第 1 行包含不同日期的值。
如何确保每一行都包含日期都匹配的值?例如,第 1 行将从每个dataframe
中的所有日期都相同的位置开始。所有其他dataframes
中没有匹配日期的每一行都将dropped
。
我意识到我可以手动循环和创建dataframe
,但我假设pandas
已经内置了执行此操作的方法。
你还没有说明你想加入什么。
dfj = dfS1.join(dfS2, on='date_field_name', how='outer', rsuffix='_1')
有关数据帧的完整详细信息,请参阅 pandas 文档。join
此外,如果要删除没有所有帧匹配日期的行:
对于要联接的每个数据帧/系列,您希望使用 how='inner' 而不是"外在"。