【发布时间】:2016-08-23 09:41:15
【问题描述】:
考虑 2 个 .csv 文件,其中包含具有 DateTime 索引的水位数据。可以从以下位置下载: https://www.dropbox.com/sh/50zaz9ore00j7rp/AAA2MhNrNMRImoSBWWcUBNp4a?dl=0
导入如下:
pbn61 = pd.read_csv('3844_61.csv,
index_col = 0,
delimiter = ';',
dayfirst = True,
usecols = ['Datumtijd','DisplayWaarde']
)
第二个文件也一样。全局变量“pbn65”。
现在我想合并这 2 个 DataFrame,以便我可以在一个图中绘制两个数据序列。这样做的原因是我有大约 50 个这些文件,而且它们都没有相同的开始日期和/或时间。所以合并一些会大大减少我最终得到的图表的数量。
现在我只想要两个系列中都可用的数据,因为只有这样数据才能与研究相关。因此我使用以下代码:
pbn65.columns = ['DisplayWaarde2']
result1 = pd.merge(pbn61,pbn65, left_index = True, right_index = True, how='inner')
result2 = pbn65.join(pbn61, how = 'inner')
pd.set_option('max_rows', 25000)
result2
我需要重命名一列以确保它可以加入。增加最大行数以显示计数错误
这两种方式都会导致相同的问题。那就是索引放错了顺序。现在这可能是因为索引是表单的 DateTime
DD-MM-YYYY HH:MM
加入/合并会导致 pandas 计数 Decimal 而不是 DateTime。
连接两个 DataFrame 会出现以下错误:
result3 = pd.concat([pbn61,pbn65], axis = 1, join = 'inner')
result3
Shape of passed values is (2, 20424), indices imply (2, 19558)
这正是使用合并/连接生成的 DataFrame 的长度。
有没有办法解决这个问题?
附:我想保留一个 DateTime 索引,因为我需要一个时间指示来进行评估。
附言大多数文件包含重复的索引。尝试使用index.drop_duplicate 似乎无济于事。
【问题讨论】:
标签: datetime pandas indexing dataframe corrupt