我目前有两个数据帧已从需要加入的CSV文件中提取。问题在于连接列不匹配,而且我必须处理许多文件,因此在excel中进行手动清理不是可选的。
这就是我正在工作的...
DF1
ID Title HIF
1 A HIF-1101
2 AB HIF-1102
DF2
HIF Date Type
HIF-1101 CD42 01/12/19 Image
HIF-1102 JH96 01/14/19 Image
我需要消除DF2中多余的字母/数字组合。连接列中的所有行(有数千行)在“ HIF-XXXX”中均采用相同的数字格式。也许有一种方法可以找到“ HIF”,然后在右边索引5个字符?
答案 0 :(得分:4)
使用specifier
从str.extract
中提取模式HIF-\w{4}
,然后可以将df2['HIF']
和df1
合并到“ HIF”上。
df2
答案 1 :(得分:4)
df2['HIF'] = df2['HIF'].str.slice(stop=-5)
print(df2)
HIF Date Type
0 HIF-1101 01/12/19 Image
1 HIF-1102 01/14/19 Image
然后合并
df_merge = pd.merge(df1, df2, on='HIF')
print(df_merge)
ID Title HIF Date Type
0 1 A HIF-1101 01/12/19 Image
1 2 AB HIF-1102 01/14/19 Image
答案 2 :(得分:1)
我正在使用b.map((element) => {
let entry = a.find((e) => {
let d = new Date(e.timestampUtc)
let start = new Date(element.starttimestampUtc)
let end = new Date(element.endtimestampUtc)
return (d >= start && d <= end)
})
if(entry !== undefined) {
element.humidity = entry.humidity
}
return element
})
str.find