![](/img/trans.png)
[英]How to replace pandas dataframe column values based on dictionary key and values?
[英]How to replace values in column in one DataFrame by values from second DataFrame both have major key in Python Pandas?
我在 Python Pandas 中有 2 个 DataFrame,如下所示:
DF1
COL1 | ... | COLn
-----|------|-------
A | ... | ...
B | ... | ...
A | ... | ...
.... | ... | ...
DF2
G1 | G2
----|-----
A | 1
B | 2
C | 3
D | 4
我需要用DF2 G2
的值替换DF1 COL1
的值
因此,结果我需要如下格式的 DF1:
COL1 | ... | COLn
-----|------|-------
1 | ... | ...
2 | ... | ...
1 | ... | ...
.... | ... | ...
当然,我的表很大,最好自动执行此操作而不是通过手动调整值:)
我怎样才能在 Python Pandas 中做到这一点?
import pandas as pd
df1 = pd.DataFrame({"COL1": ["A", "B", "A"]}) # Add more columns as required
df2 = pd.DataFrame({"G1": ["A", "B", "C", "D"], "G2": [1, 2, 3, 4]})
df1["COL1"] = df1["COL1"].map(df2.set_index("G1")["G2"])
output df1:
COL1
0 1
1 2
2 1
您可以尝试使用 Dataframe 的分配或更新方法:
import pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'B': [7, 8, 9]})
尝试
df1 = df1.assign(B=df2['B'])# assign will create a new Dataframe
要么
df1.update(df2)# update makes a in place modification
这里是文档的链接https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.assign.html
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.update.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.