python很新,我有一個關于資料框的問題。所以目前我擁有的是兩個不同的資料框。其中一個是這樣的:
表格格式有問題,所以我發布圖片
另一個是這樣的:
| 一種 | 乙 | C |
|---|---|---|
| 1 | 513 | |
| 2 | 513 | |
| 3 | 730 |
我需要得到的是,從第一個資料幀中提取與第二個資料幀的尊重行匹配的值。例如:第二個dataframe的第一行匹配1到513,第一個dataframe中這個匹配對應的值為1.8。對于第二個資料幀中的第二行,匹配為 2 到 513,第一個資料幀中對應的值為 2。如何以 Python 方式提取這些值?
我當前的代碼是這樣的:
data = first_dataframe
B = second_dataframe['B'].tolist()
for i in range(954):
for j in B:
output = data.iat[i, j]
print(output)
不幸的是,我得到的是第一個資料幀的第一列的每個值都與第一個資料幀中第一行的所有值匹配。我應該改變什么?提前致謝。
uj5u.com熱心網友回復:
資料框1:
df1=pd.DataFrame({
1:[0.5,0.4,0.1],
2:[0.6,0.2,0.5],
3:[0.5,0.4,0.7],
513:[1.8,2,5],
}, index=[1,2,3]).stack().to_frame(name="C")
資料框2:
df2=pd.DataFrame({
"A":[1,2,3],
"B":[513,513,730],
}, index=[1,2,3])
合并:
df2.merge(df1,left_on=["A","B"],right_index=True)
結果:| |a|b|c| |--|--|--|--| |1|1|513|1.8| |2|2|513|2.0|
希望這是你想要的?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/456660.html
上一篇:合并兩個不同的資料框
