如何使用python(pandas/for循环)我可以得到这样的结果表?

tjjdgumg  于 12个月前  发布在  Python
关注(0)|答案(1)|浏览(122)

我有两个 Dataframe :
df_1 enter image description here
df_2 enter image description here
我需要从[df_1]开始检查每个单元格的“代码”,并与[df_2]进行检查,并将其与从最低开始的排名进行比较,将结果写入[df_3]
需要获取此结果表
df_3 enter image description here
我不明白我怎么能用python+pandas做这个?请帮助。

qgelzfjb

qgelzfjb1#

我也觉得你的提问方式不对,但是我回答了,因为这个问题本身就是一个有趣的问题,希望你下次能提出好的问题。

示例代码

我们需要最小的例子作为文本。我重拍更微型的例子,并提供代码

import pandas as pd
data1 = {'smth': ['RB', 'Supp', 'DX RT', 'Fk', 'CZFO', 'Supp_t', 'RK', 'rec', 'commerc', 'Supp_t'], 
         'code': ['HC-1343958', 'HC-1343958', 'HC-1340305', 'HC-1340305', 'HC-1107001', 'HC-1107001', 'HC-1107001', 'HC-1135154', 'HC-1135154', 'HC-1135154'], 
         'product_name': ['ERXY3-400', 'ERXY3-400', 'BWH/S 100 Level PRO', 'BWH/S 100 Level PRO', 'GWH 12 Fonte', 'GWH 12 Fonte', 'GWH 12 Fonte', 'BEC/ETER-1500', 'BEC/ETER-1503', 'BEC/ETER-1505'], 
         'digit': [3, 2, 20, 1, 1, 17, 78, 246, 10, 23], 
         'changes': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}
data2 = {'smth': ['rec', 'Supp', 'Supp_t', 'RK', 'CZFO', 'RB'], 'rank': [2, 4, 6, 8, 9, 10]}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

字符串
DF1

smth    code        product_name            digit   changes
0   RB      HC-1343958  ERXY3-400               3       1
1   Supp    HC-1343958  ERXY3-400               2       1
2   DX RT   HC-1340305  BWH/S 100 Level PRO     20      1
3   Fk      HC-1340305  BWH/S 100 Level PRO     1       1
4   CZFO    HC-1107001  GWH 12 Fonte            1       1
5   Supp_t  HC-1107001  GWH 12 Fonte            17      1
6   RK      HC-1107001  GWH 12 Fonte            78      1
7   rec     HC-1135154  BEC/ETER-1500           246     1
8   commerc HC-1135154  BEC/ETER-1503           10      1
9   Supp_t  HC-1135154  BEC/ETER-1505           23      1


df2:

smth    rank
0   rec     2
1   Supp    4
2   Supp_t  6
3   RK      8
4   CZFO    9
5   RB      10

验证码

通过df2和groupbyidxmin进行Map。
和布尔索引的结果

m = dict(df2.values)
idxmin = df1['smth'].map(m).groupby(df1['code']).idxmin()
out = df1[df1.index.isin(idxmin)]


输出:

smth    code        product_name    digit   changes
1   Supp    HC-1343958  ERXY3-400       2       1
5   Supp_t  HC-1107001  GWH 12 Fonte    17      1
7   rec     HC-1135154  BEC/ETER-1500   246     1

相关问题