合并的手动输入的数据框:可以按日期排序
Manually entered dataframes which were merged: possibility to sort by date
下面两个数据框 df1 和 df2 已经手动输入到 Python。
然后将数据帧合并到 df3 中。
我如何确保最终合并的数据帧 df3 使用相同的降序(时间顺序)(对于初始数据帧 df1 和 df2)(因为默认情况下不是这种情况)?
提前致谢
import pandas as pd
df1 = pd.DataFrame({"date": ['2021-3-22', '2021-4-7', '2021-4-18', '2021-5-12'],
"x": [3, 3, 3, 0 ]})
df1['date'] = pd.to_datetime(df1['date'])
df1.set_index('date', inplace=True)
df1
x
date
2021-03-22 3
2021-04-07 3
2021-04-18 3
2021-05-12 0
df2 = pd.DataFrame({"date": ['2021-3-22', '2021-4-8', '2021-4-18', '2021-5-12'],
"y": [3, 3, 3, 0 ]})
df2['date'] = pd.to_datetime(df2['date'])
df2.set_index('date', inplace=True)
df2
y
date
2021-03-22 3
2021-04-08 3
2021-04-18 3
2021-05-12 0
df3 = df1.merge(df2, on='date', how='outer')
df3
x y
date
2021-03-22 3.0 3.0
2021-04-07 3.0 NaN
2021-04-18 3.0 3.0
2021-05-12 0.0 0.0
2021-04-08 NaN 3.0
PS
这个问题是以下问题的后续问题:
要按降序排列合并的数据框,您可以用此更新合并行
df3 = df1.merge(df2, on='date', how='outer').sort_values(by='date', ascending=False)
这将按时间降序对 df3 进行排序。
下面两个数据框 df1 和 df2 已经手动输入到 Python。 然后将数据帧合并到 df3 中。 我如何确保最终合并的数据帧 df3 使用相同的降序(时间顺序)(对于初始数据帧 df1 和 df2)(因为默认情况下不是这种情况)? 提前致谢
import pandas as pd
df1 = pd.DataFrame({"date": ['2021-3-22', '2021-4-7', '2021-4-18', '2021-5-12'],
"x": [3, 3, 3, 0 ]})
df1['date'] = pd.to_datetime(df1['date'])
df1.set_index('date', inplace=True)
df1
x
date
2021-03-22 3
2021-04-07 3
2021-04-18 3
2021-05-12 0
df2 = pd.DataFrame({"date": ['2021-3-22', '2021-4-8', '2021-4-18', '2021-5-12'],
"y": [3, 3, 3, 0 ]})
df2['date'] = pd.to_datetime(df2['date'])
df2.set_index('date', inplace=True)
df2
y
date
2021-03-22 3
2021-04-08 3
2021-04-18 3
2021-05-12 0
df3 = df1.merge(df2, on='date', how='outer')
df3
x y
date
2021-03-22 3.0 3.0
2021-04-07 3.0 NaN
2021-04-18 3.0 3.0
2021-05-12 0.0 0.0
2021-04-08 NaN 3.0
PS
这个问题是以下问题的后续问题:
要按降序排列合并的数据框,您可以用此更新合并行
df3 = df1.merge(df2, on='date', how='outer').sort_values(by='date', ascending=False)
这将按时间降序对 df3 进行排序。