【发布时间】:2020-08-31 19:13:27
【问题描述】:
我是 python 编程的新手。我有两个数据框 df1 包含标签(180k 行)和 df2 包含设备名称(1600 行)
df1:
Line TagName CLASS 187877 PT_WOA .ZS01_LA120_T05.SB.S2384_LesSwL 10 187878 PT_WOA .ZS01_RB2202_T05.SB.S2385_FLOK 10 187879 PT_WOA .ZS01_LA120_T05.SB._CBAbsHy 10 187880 PT_WOA .ZS01_LA120_T05.SB.S3110_CBAPV 10 187881 PT_WOA .ZS01_LARB2204.SB.S3111_CBRelHy 10
df2:
EquipmentNo EquipmentDescription Equipment
1311256 Lifting table LA120
1311257 Roller bed RB2200
1311258 Lifting table LT2202
1311259 Roller bed RB2202
1311260 Roller bed RB2204
df2.Equipment 位于 df1.TagName 中的字符串之间。我需要根据 df2 设备是否在 df1 标记名中进行匹配,然后 df2(设备描述和设备编号)必须与 df1 匹配。
最终输出应该是
Line TagName quipmentdescription EquipmentNo
187877 PT_WOA .ZS01_LA120_T05.SB.S2384_LesSwL Lifting table 1311256
187878 PT_WOA .ZS01_RB2202_T05.SB.S2385_FLOK Roller bed 1311259
187879 PT_WOA .ZS01_LA120_T05.SB._CBAbsHy Lifting table 1311256
187880 PT_WOA .ZS01_LA120_T05.SB.S3110_CBAPV Lifting table 1311256
187881 PT_WOA .ZS01_LARB2204.SB.S3111_CBRelHy Roller bed 1311260
我已经试过了
cols= df2['Equipment'].tolist()
Xs=[]
for i in cols:
Test = df1.loc[df1.TagName.str.contains(i)]
Test['Equip']=i
Xs.append(Test)
然后根据“设备”合并xs和df2
但是我收到了这个错误
第一个参数必须是字符串或编译模式
【问题讨论】:
标签: python string pandas dataframe