Excel表1为数据库,Excel表2为需要填补的时间序列数据
在表1查找相同的year和ID,将表1的A,B,C,D..等对应的数据填充至表2的A,B,C,D ...中(对于表2已有数据不改动)
麻烦大家教我一下, Excel、py、stata都行,C语言什么也可以,谢谢,会做这个处理对我真的很重要!
1、描述不是太清晰,建议问题中不涉及的列全部先隐藏掉再截图,图1中并未看到year列,是把图1的Gross premium written列填充到图2的行中吗?还是将图1的Gross premium written列开始的列复制到图2中?从描述来看,你最后一句话是否应该是:“对于图2中已有数据不进行改动”
解决了吗?在Excel里面可以使用公式实现。
在表2中使用VLOOKUP函数查找相同的year和ID。
VLOOKUP函数的语法为:
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
其中:
lookup_value是需要查找的值,在本例中为year和ID。
table_array是数据表,在本例中为表1。
col_index_num是需要返回的列的索引,在本例中为A,B,C,D...。
[range_lookup]是可选参数,用于指定是否进行完全匹配,0表示完全匹配,1表示近似匹配。
例如假设要查找year和ID为2012和1的记录,并返回表1中A列的值,可以使用如下VLOOKUP函数:
=VLOOKUP(2012&1, Table1, 1, 0)
仅供参考,望采纳,谢谢。
根据要求设计了两个文件,其中data1用于存放数据库,data2用于存放待填的表格
data1内容:
import pandas as pd
path1 = r'C:\Users\Desktop\data1.xlsx' ##待替换的表
path2 = r'C:\Users\Desktop\data2.xlsx' ##ID表
df1 = pd.read_excel(path1)
df2 = pd.read_excel(path2, usecols=[0, 1])
df3 = pd.merge(df1, df2, on=['ID', 'year'], how="right")
df4 = df3.iloc[:, :6]
df5 = pd.read_excel(path2)
df5['A'] = df4['A']
df5['B'] = df4['B']
df5['C'] = df4['C']
df5['D'] = df4['D']
print(df5)
结果为: