要将两个 pandas DataFrame 合并为一个,并保留它们的所有值,可以使用 pd.merge()
函数。这个函数允许你根据一个或多个键(例如时间索引)来合并数据框。以下是一个示例,展示了如何使用时间索引来合并两个 DataFrame:
假设我们有两个 DataFrame df1
和 df2
,它们都有一个时间索引列 timestamp
。
import pandas as pd
# 创建示例 DataFrame
data1 = {'timestamp': ['2021-01-01', '2021-01-02', '2021-01-03'],
'value1': [10, 20, 30]}
df1 = pd.DataFrame(data1)
df1['timestamp'] = pd.to_datetime(df1['timestamp'])
data2 = {'timestamp': ['2021-01-02', '2021-01-03', '2021-01-04'],
'value2': [15, 25, 35]}
df2 = pd.DataFrame(data2)
df2['timestamp'] = pd.to_datetime(df2['timestamp'])
# 将时间索引设置为 DataFrame 的索引
df1.set_index('timestamp', inplace=True)
df2.set_index('timestamp', inplace=True)
# 合并两个 DataFrame
merged_df = pd.merge(df1, df2, left_index=True, right_index=True, how='outer')
print(merged_df)
df1
和 df2
,每个 DataFrame 都有一个 timestamp
列和一个值列。timestamp
列转换为 datetime
类型,以便可以作为索引使用。timestamp
列设置为 DataFrame 的索引。pd.merge()
函数,通过 left_index=True
和 right_index=True
指定使用索引进行合并,并使用 how='outer'
确保保留所有值(即进行外连接)。 value1 value2
timestamp
2021-01-01 10 NaN
2021-01-02 20 15.0
2021-01-03 30 25.0
2021-01-04 NaN 35.0
how='outer'
可以保留所有时间点的值,但可能会引入缺失值(NaN),需要根据具体需求进行处理。通过这种方式,你可以有效地将两个具有时间索引的 DataFrame 合并为一个,并保留它们的所有值。
领取专属 10元无门槛券
手把手带您无忧上云