gpt4 book ai didi

python - 使用时间序列索引替换 pandas 列值

转载 作者:行者123 更新时间:2023-12-01 03:04:56 26 4
gpt4 key购买 nike

我有两个 pandas 数据框:

import pandas as pd    
index = pd.date_range('06/01/2014',periods=48,freq='H')
df1 = pd.DataFrame(range(len(index)),index=index)

index2 = pd.date_range('06/02/2014',periods=24,freq='H')
df2 = pd.DataFrame(range(0,24),index=index2)

如何使用时间序列索引将df1中的值替换为df2中的值?我的意思是,无论两个数据帧的索引匹配,df1 的值都应该替换为 df2

的值

最佳答案

我认为你需要combine_first如果 df2.index 始终位于 df1.index 中:

df1 = df2.combine_first(df1)

但如果没有,那就有点复杂了 - 添加 intersection然后使用combine_first:

index = pd.date_range('06/01/2014',periods=12,freq='H')
df1 = pd.DataFrame(np.arange(len(index)),index=index)

index2 = pd.date_range('06/01/2014 08:00:00',periods=6,freq='H')
df2 = pd.DataFrame(np.arange(0,6),index=index2)
print (df1)
0
2014-06-01 00:00:00 0
2014-06-01 01:00:00 1
2014-06-01 02:00:00 2
2014-06-01 03:00:00 3
2014-06-01 04:00:00 4
2014-06-01 05:00:00 5
2014-06-01 06:00:00 6
2014-06-01 07:00:00 7
2014-06-01 08:00:00 8
2014-06-01 09:00:00 9
2014-06-01 10:00:00 10
2014-06-01 11:00:00 11

print (df2)

0
2014-06-01 08:00:00 0
2014-06-01 09:00:00 1
2014-06-01 10:00:00 2
2014-06-01 11:00:00 3
2014-06-01 12:00:00 4
2014-06-01 13:00:00 5
df1 = df2.loc[df2.index.intersection(df1.index)].combine_first(df1)
print (df1)
0
2014-06-01 00:00:00 0.0
2014-06-01 01:00:00 1.0
2014-06-01 02:00:00 2.0
2014-06-01 03:00:00 3.0
2014-06-01 04:00:00 4.0
2014-06-01 05:00:00 5.0
2014-06-01 06:00:00 6.0
2014-06-01 07:00:00 7.0
2014-06-01 08:00:00 0.0
2014-06-01 09:00:00 1.0
2014-06-01 10:00:00 2.0
2014-06-01 11:00:00 3.0
<小时/>

另一个解决方案 loc :

df1.loc[df2.index.intersection(df1.index)] = df2
print (df1)
0
2014-06-01 00:00:00 0
2014-06-01 01:00:00 1
2014-06-01 02:00:00 2
2014-06-01 03:00:00 3
2014-06-01 04:00:00 4
2014-06-01 05:00:00 5
2014-06-01 06:00:00 6
2014-06-01 07:00:00 7
2014-06-01 08:00:00 0
2014-06-01 09:00:00 1
2014-06-01 10:00:00 2
2014-06-01 11:00:00 3

关于python - 使用时间序列索引替换 pandas 列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43512754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com