我正在编写一个脚本,将数据文件从一种格式转换为另一种格式。我需要从列标题中删除特殊字符。
我正在使用 Pandas 读取具有以下结构的 CSV 文件。我正在寻找一种简洁的方法来删除列名称中的 [units]。
数据文件:
Date ,Time ,app1_sum [Ml] ,app1_q [l/s] ,app1_h [m] ,app1_a [m²] ,app1_v [m/s] ,app1_t_water [°C]
02.10.2024 ,19:05:00 ,57293.336 ,620.78 ,0.436 ,0.586 ,1.059 ,18.2
我的目标是将列名称简化为最简单的形式:
Date,Time,app1_sum,app1_q,app1_h,app1_a,app1_v,app1_t_water
我目前的做法是先移除支架,然后一次移除一个再挖矿单元。
df.columns = df.columns.str.replace('[', '')
df.columns = df.columns.str.replace(']', '')
df.columns = df.columns.str.replace(' Ml', '')
我还尝试使用正则表达式一次删除一个单元,这可行,但感觉不对。
df.rename(columns=lambda x: re.sub(r'\[Ml\]', '', x), inplace=True)
df.rename(columns=lambda x: re.sub(r'\[l/s\]', '', x), inplace=True)
df.rename(columns=lambda x: re.sub(r'\[m\]', '', x), inplace=True)
df.rename(columns=lambda x: re.sub(r'\[m²\]', '', x), inplace=True)
df.rename(columns=lambda x: re.sub(r'\[m/s\]', '', x), inplace=True)
df.rename(columns=lambda x: re.sub(r'\[°C\]', '', x), inplace=True)
您可以仅在空格上拆分并保留每个列名称的第一项。
df.columns = [c.split(' ')[0] for c in df.columns]