2024-06-01 00:03:20 发布
网友
我有一个包含一些数据的数据csv文件。其中我有一些分号内的数据。在这些分号中有一些特定的id号,我需要将其替换为特定的位置名
可用数据
24CFA4A-12L-GF电气走廊
替换id号分号内的数据
1;1.35;;1/2/1/37 24CFA4A;;;0;;;强>
包含数据的文件-https://gofile.io/d/bQDppz
如果有人有解决办法,谢谢你
[![查找id号并替换为位置后要替换的主要数据][3][3]
假设您有数据帧:
df1 = pd.read_excel("ID_list.xlsx", header=None) df2 = pd.read_excel("location.xlsx", header=None)
df1:
0 0 1;1;27;;1/2/1/29 25BAB3D;;;0;;; 1 1;1;27;1;;;;0;;; 2 1;1;28;;1/2/1/30 290E6D2;;;0;;; 3 1;1;28;1;;;;0;;; 4 1;1;29;;1/2/1/31 28BA737;;;0;;; 5 1;1;29;1;;;;0;;; 6 1;1;30;;1/2/1/32 2717823;;;0;;; 7 1;1;30;1;;;;0;;; 8 1;1;31;;1/2/1/33 254DEAA;;;0;;; 9 1;1;31;1;;;;0;;; 10 1;1;32;;1/2/1/34 28AE041;;;0;;; 11 1;1;32;1;;;;0;;; 12 1;1;33;;1/2/1/35 254DE82;;;0;;; 13 1;1;33;1;;;;0;;; 14 1;1;34;;1/2/1/36 2539D70;;;0;;; 15 1;1;34;1;;;;0;;; 16 1;1;35;;1/2/1/37 24CFA4A;;;0;;; 17 1;1;35;1;;;;0;;; 18 1;1;36;;1/2/1/39 28F023E;;;0;;; 19 1;1;36;1;;;;0;;; 20 1;1;37;;1/2/1/40 2717831;;;0;;; 21 1;1;37;1;;;;0;;; 22 1;1;38;;1/2/1/41 2397D75;;;0;;; 23 1;1;38;1;;;;0;;; 24 1;1;39;;1/2/1/42 287844C;;;0;;; 25 1;1;39;1;;;;0;;; 26 1;1;40;;1/2/1/43 28784F0;;;0;;; 27 1;1;40;1;;;;0;;; 28 1;1;41;;1/2/1/44 2865B67;;;0;;; 29 1;1;41;1;;;;0;;; 30 1;1;42;;1/2/1/45 2865998;;;0;;; 31 1;1;42;1;;;;0;;; 32 1;1;43;;1/2/1/46 287852F;;;0;;; 33 1;1;43;1;;;;0;;; 34 1;1;44;;1/2/1/47 287AC43;;;0;;; 35 1;1;44;1;;;;0;;; 36 1;1;45;;1/2/1/48 287ACF8;;;0;;; 37 1;1;45;1;;;;0;;; 38 1;1;46;;1/2/1/49 2878586;;;0;;; 39 1;1;46;1;;;;0;;; 40 1;1;47;;1/2/1/50 2878474;;;0;;; 41 1;1;47;1;;;;0;;; 42 1;1;48;;1/2/1/51 2846315;;;0;;;
df2:
0 1 0 GF General Dining TC 254DEAA-02L 1 GF General Dining TC 2717823-26L 2 GF General Dining FC 28BA737-50L 3 GF Preparation FC 25BAB3D-10L 4 GF Preparation TC 290E6D2-01M 5 GF Hospital Kitchen FC 25BAB2F-10L 6 GF Hospital Kitchen TC 2906F5C-01M 7 GF Food Preparation FC 25F5723-10L 8 GF Food Preparation TC 29070D6-01M 9 GF KITCHEN Corridor 254DF5D-02L
然后:
df1 = df1[0].str.split(";", expand=True) df1[4] = df1[4].apply(lambda x: v[-1] if (v := x.split()) else "") df2[1] = df2[1].apply(lambda x: x.split("-")[0])
0 1 2 3 4 5 6 7 8 9 10 0 1 1 27 25BAB3D 0 1 1 1 27 1 0 2 1 1 28 290E6D2 0 3 1 1 28 1 0 4 1 1 29 28BA737 0 5 1 1 29 1 0 6 1 1 30 2717823 0 7 1 1 30 1 0 8 1 1 31 254DEAA 0 9 1 1 31 1 0 10 1 1 32 28AE041 0 11 1 1 32 1 0 12 1 1 33 254DE82 0 13 1 1 33 1 0 14 1 1 34 2539D70 0 15 1 1 34 1 0 16 1 1 35 24CFA4A 0 17 1 1 35 1 0 18 1 1 36 28F023E 0 19 1 1 36 1 0 20 1 1 37 2717831 0 21 1 1 37 1 0 22 1 1 38 2397D75 0 23 1 1 38 1 0 24 1 1 39 287844C 0 25 1 1 39 1 0 26 1 1 40 28784F0 0 27 1 1 40 1 0 28 1 1 41 2865B67 0 29 1 1 41 1 0 30 1 1 42 2865998 0 31 1 1 42 1 0 32 1 1 43 287852F 0 33 1 1 43 1 0 34 1 1 44 287AC43 0 35 1 1 44 1 0 36 1 1 45 287ACF8 0 37 1 1 45 1 0 38 1 1 46 2878586 0 39 1 1 46 1 0 40 1 1 47 2878474 0 41 1 1 47 1 0 42 1 1 48 2846315 0
0 1 0 GF General Dining TC 254DEAA 1 GF General Dining TC 2717823 2 GF General Dining FC 28BA737 3 GF Preparation FC 25BAB3D 4 GF Preparation TC 290E6D2 5 GF Hospital Kitchen FC 25BAB2F 6 GF Hospital Kitchen TC 2906F5C 7 GF Food Preparation FC 25F5723 8 GF Food Preparation TC 29070D6 9 GF KITCHEN Corridor 254DF5D
要替换这些值,请执行以下操作:
m = dict(zip(df2[1], df2[0])) df1[4] = df1[4].replace(m)
0 1 2 3 4 5 6 7 8 9 10 0 1 1 27 GF Preparation FC 0 1 1 1 27 1 0 2 1 1 28 GF Preparation TC 0 3 1 1 28 1 0 4 1 1 29 GF General Dining FC 0 5 1 1 29 1 0 6 1 1 30 GF General Dining TC 0 7 1 1 30 1 0 8 1 1 31 GF General Dining TC 0 9 1 1 31 1 0 10 1 1 32 28AE041 0 11 1 1 32 1 0 12 1 1 33 254DE82 0 13 1 1 33 1 0 14 1 1 34 2539D70 0 15 1 1 34 1 0 16 1 1 35 24CFA4A 0 17 1 1 35 1 0 18 1 1 36 28F023E 0 19 1 1 36 1 0 20 1 1 37 2717831 0 21 1 1 37 1 0 22 1 1 38 2397D75 0 23 1 1 38 1 0 24 1 1 39 287844C 0 25 1 1 39 1 0 26 1 1 40 28784F0 0 27 1 1 40 1 0 28 1 1 41 2865B67 0 29 1 1 41 1 0 30 1 1 42 2865998 0 31 1 1 42 1 0 32 1 1 43 287852F 0 33 1 1 43 1 0 34 1 1 44 287AC43 0 35 1 1 44 1 0 36 1 1 45 287ACF8 0 37 1 1 45 1 0 38 1 1 46 2878586 0 39 1 1 46 1 0 40 1 1 47 2878474 0 41 1 1 47 1 0 42 1 1 48 2846315 0
假设您有数据帧:
df1:
df2:
然后:
df1:
df2:
要替换这些值,请执行以下操作:
df1:
相关问题 更多 >
编程相关推荐