关于#数据库#的问题: Excel、py、stata都行,C语言什么也可以

Excel表1为数据库,Excel表2为需要填补的时间序列数据
在表1查找相同的year和ID,将表1的A,B,C,D..等对应的数据填充至表2的A,B,C,D ...中(对于表2已有数据不改动)

img

麻烦大家教我一下, 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内容:

img


data2内容:

img


代码为:

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)


结果为:

img


可实现相应元素的替换
如果问题得到解决的话请点 采纳~~