假设我有以下数据集。
import numpy as np
import pandas as pd
d = {'name': ['a', 'a', 'a'], 'year': [2000, 2001, 2002], 'value': [10, 17, 22] }
data_frame = pd.DataFrame(data=d)
data_frame
d1 = {'name': ['a', 'a', 'a'], 'year': [2001, 2002, 2003], 'value': [10, 17, 22] }
data_frame1 = pd.DataFrame(data=d1)
data_frame1
d2 = {'name': ['a', 'a', 'a'], 'year': [2000, 2002, 2003], 'value': [10, 17, 22] }
data_frame2 = pd.DataFrame(data=d2)
data_frame2
我想做的是:
1.在data_frame
中,我错过了2003年的观察,因此我想复制包含2002(最早可用的年份)的行(data_frame[data_frame['year']==2002])
,将其附加到我的data_frame
中,并将2002替换为2003。其余保持不变。
1.在data_frame1
中,我错过了2000年的观测值,我想做与1中相同的事情,但在这种情况下,我想使用包含2001年的行。
1.至于data_frame2
,我没有2001年的观测数据,这里我想使用最早的年份,即2000年。
有没有什么方法可以做到这一点,而不需要分别检查每个 Dataframe ,而是编写一些通用函数?
- 谢谢-谢谢
1条答案
按热度按时间pqwbnv8z1#
使用
DataFrame.reindex
与参数method='nearest'
配合使用所有年份,但对于data_frame2
则使用下一年:如果需要上一年如果存在,最后一年替换下一年用途:
每组溶液: