我有2个时间序列。
df=pd.DataFrame([
['1/10/12',10],
['1/11/12',11],
['1/12/12',13],
['1/14/12',12],
],
columns=['Time','n'])
df.index=pd.to_datetime(df['Time'])
df1=pd.DataFrame([
['1/13/12',88],
],columns=['Time','n']
)
df1.index=pd.to_datetime(df1['Time'])
我正在尝试对齐时间序列,以便索引按顺序排列。我猜reindex_like是我需要的,但不知道如何使用它。
这是我想要的输出
Time n
0 1/10/12 10
1 1/11/12 11
2 1/12/12 13
3 1/13/12 88
4 1/14/12 12
答案 0 :(得分:1)
以下是您的需求:
df.append(df1).sort().reset_index(drop=True)
如果您需要将更多部分组合在一起,则使用pd.concat(<names of all your dataframes as a list>)
会更有效。
P.S。您的代码有点多余:如果您不需要,则不需要将Time
转换为索引。您可以根据任何列对值进行排序,如下所示:
import pandas as pd
df=pd.DataFrame([
['1/10/12',10],
['1/11/12',11],
['1/12/12',13],
['1/14/12',12],
],
columns=['Time','n'])
df1=pd.DataFrame([
['1/13/12',88],
],columns=['Time','n']
)
df.append(df1).sort_values('Time')
答案 1 :(得分:1)
您可以使用concat
,sort_index
和reset_index
:
df = pd.concat([df,df1]).sort_index().reset_index(drop=True)
print df
Time n
0 1/10/12 10
1 1/11/12 11
2 1/12/12 13
3 1/13/12 88
4 1/14/12 12
或者您可以使用ordered_merge
:
print pd.ordered_merge(df, df1)
Time n
0 1/10/12 10
1 1/11/12 11
2 1/12/12 13
3 1/13/12 88
4 1/14/12 12