我正在处理一个数据集。我有一个数据集,其中有三列公司 SIC 代码,第二列也是公司 SIC 代码,第三列是两个 SIC 代码之间的关系得分。
第一个数据框
SIC SIC.1 value
10 10 0
10 12 15
10 15 17.9
第二个数据帧是空数据帧,索引和列中带有 SIC 代码
10 12 13
10
12
13
所以我必须使用第一个数据帧中的值列在第二个数据帧中写入一个值?
代码是
for k in df20.index:
for i in df21.index:
for j in df21.columns:
a = int(i)
b = int(j)
if df20["SIC"][k] == a & df20["SIC.1"][k] == b:
m = df20["value"][k]
df21[i][j] = m
else:
continue
请看一下,我不知道我错在哪里。
最佳答案
import pandas as pd
df20 = pd.DataFrame([
[10, 10, 0],
[10, 12, 15],
[10, 15, 17.9],
], columns=['SIC', 'SIC.1', 'value'])
df21 = pd.DataFrame(
index=[10, 12, 13], columns=[10, 12, 13]
)
for i, row in df20.iterrows():
for SIC in df21.index:
for SIC1 in df21.columns:
if row['SIC'] == SIC and row['SIC.1'] == SIC1:
df21.loc[SIC, SIC1] = row['value']
print(df21)
关于python - 如何从另一个数据帧添加数据帧矩阵中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71891808/