【发布时间】:2019-07-09 09:14:19
【问题描述】:
我有一个时间序列的多个时间序列数据(txt 文件)。 这是一个过于简单的例子:
import pandas as pd
import datetime as dt
df1_1 = pd.DataFrame({'Date': [15/03/2019 10:00:11.000, 15/03/2019 10:00:12.000 , 15/03/2019 10:00:13.000],
'Cond [mS/cm]': [7.45, 7.45, 7.45],
'Temp [C]': [8.22, 8.22, 8.22],
'Sal [PSU]': [7.63, 7.63, 7.63]})
df1_2 = pd.DataFrame({'Date': [30/03/2019 10:00:11.000, 30/03/2019 10:00:12.000 , 30/03/2019 10:00:13.000],
'Cond [mS/cm]': [7.45, 7.45, 7.45],
'Temp [C]': [8.22, 8.22, 8.22],
'Sal [PSU]': [7.63, 7.63, 7.63]})
df2_1 = pd.DataFrame({'Date': [15/03/2019 10:00:11.000, 15/03/2019 10:00:12.000 , 15/03/2019 10:00:13.000],
'Cond_2 [mS/cm]': [7.47, 7.47, 7.47],
'Temp_2 [C]': [8.22, 8.22, 8.22],
'Sal_2 [PSU]': [7.67, 7.67, 7.67]})
df2_2 = pd.DataFrame({'Date': [30/03/2019 10:00:11.000, 30/03/2019 10:00:12.000 , 30/03/2019 10:00:13.000],
'Cond_2 [mS/cm]': [7.47, 7.47, 7.47],
'Temp_2 [C]': [8.22, 8.22, 8.22],
'Sal_2 [PSU]': [7.67, 7.67, 7.67]})
其中 df1 表示来自传感器 1 的数据,df1_1 和 df_2 是时间序列的下一个片段。
我想将所有内容合并为一个大DataFrame。
到目前为止,我已经:
- 生成的文件包含完整的时间序列(来自传感器的数据 可能会有意想不到的差距),
- 以
DataFrames的身份读取文件, - 定义的标头,
- 将“日期”列设置为每个
DataFrame的index。
然后我想joinDataFrames 到完整的时间序列:
full_date = dates.join([df1_1, df1_2], how = "outer")
但我收到一个错误:
ValueError:索引具有重叠值:Index(['Cond [mS/cm]', '按 [DBar]'、'温度 [C]'、'Sal [PSU]'、 'Dens.anom [kg/m3]'、'SOS [m/s]']、 dtype='object')
为了检查问题是否真的出在标题中,我合并了标题略有不同的文件(不同的标题 = 不同的传感器)。然后我收到了:
complete_df = ({' ':[01/04/2019 00:00:01, 01/04/2019 00:00:01 , 01/04/2019 00:00:01,
'Cond [mS/cm]': [NaN, NaN, NaN],
'Temp [C]': [NaN, NaN, NaN],
'Sal [PSU]': [NaN, NaN, NaN],
'Cond_2 [mS/cm]': [NaN, NaN, NaN],
'Temp_2 [C]': [NaN, NaN, NaN],
'Sal_2 [PSU]': [NaN, NaN, NaN]})
这很合理,只是数据的顺序不正确。
我的问题是:我应该如何组合所有 DataFrame 以获得一个大 DataFrame?
【问题讨论】: