在数据框中查找并替换部分字符串?

时间:2019-03-25 19:53:02

标签: python python-3.x pandas

我目前有两个数据帧已从需要加入的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个字符?

3 个答案:

答案 0 :(得分:4)

使用specifierstr.extract中提取模式HIF-\w{4},然后可以将df2['HIF']df1合并到“ HIF”上。

df2

答案 1 :(得分:4)

您可以使用pandas.Series.str.slice

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