按日期索引对齐多个熊猫系列



我有 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' 而不是"外在"。

最新更新