我的dataframe有未对齐的观察,也就是日期不匹配,因为列是通过API生成的日期和值对,如下所示:
data = {'date_var1': ['1/1/2022','1/2/2022', '1/3/2022','1/4/2022'], 'var1': [11, 21, 31, 41], 'date_var2': ['1/1/2022','1/2/2022', '1/4/2022','1/5/2022'], 'var2': [12, 22, 42, 51] }
df = pd.DataFrame(data)
我想解决这个问题,让它们对齐,并用0(或NaN或其他东西)填充缺失值:
data = {'date_var1': ['1/1/2022','1/2/2022', '1/3/2022','1/4/2022','1/5/2022'], 'var1': [11, 21, 31, 41, np.NaN], 'date_var2': ['1/1/2022','1/2/2022', '1/3/2022', '1/4/2022','1/5/2022'], 'var2': [12, 22, np.NaN, 42, 51]}
df = pd.DataFrame(data)
我有大约60个变量,我还没能想出一个可扩展的解决方案(除了在Excel中手工合并它们)。
2条答案
按热度按时间dhxwm5r41#
这里有一种方法可以做到这一点(依赖于问题中的列命名方案,如果真实的的 Dataframe 不使用这些名称,则需要进行调整):
输出(用于示例数据):
ru9i0ody2#
示例
df
编码
使用pd.wide_to_long
df1
创建'date_var#'列并像
df
一样对齐output