【发布时间】:2018-05-08 07:55:29
【问题描述】:
我想通过匹配他们的名字来划分 2 个 dfs。例如,
df1 = pd.DataFrame({'Name':['xy-yz','xa-ab','yz-ijk','zb-ijk'],1:[1,2,3,4],2:[1,2,1,2],3:[2,2,2,2]} )
df2 = pd.DataFrame({'Name2':['x','y','z','a'],1:[0,1,2,3],2:[1,2,3,4],3:[5,5,5,6]})
df1:
Name1 1 2 3
xy-yz 1 1 2
xa-ab 2 2 2
yz-ijk 3 1 2
zb-ijk 4 2 2
df2:
Name2 1 2 3
x 0 1 5
y 1 2 5
z 2 3 5
a 3 4 6
结果将是 df3:
Name1 1 2 3
xy-yz 1 1 2
x 0 1 5
xy-yz 1 .4 <---(xy-yz)/x
xa-ab 2 2 2
x 0 1 5
xa-ab 2 .4 <---(xa-ab)/x
yz-ijk 3 1 2
y 1 2 5
yz-ijk 3 .5 .4 <---(yz-ijk)/y
zb-ijk 4 2 2
z 2 3 5
zb-ijk 2 .67 .4 <---(zb-ijk)/z
我会使用 concat 但我不确定如何通过将 Name2 映射到 Name1 中的第一个字母来进行除法。
谢谢!
【问题讨论】:
-
执行除法很容易。挑战在于你有这种奇怪的输出表示;-)
-
@cᴏʟᴅsᴘᴇᴇᴅ 它不必是那种格式。我会在那里使用 concat(df1,df2,division) 。我是这样安排的,这样每个人都更容易理解其中的逻辑。
标签: python pandas dataframe division