首页 > 解决方案 > 使用 pandas 导入 csv 并在数据中删除字符串

问题描述

我有以下csv结构:

(
(0.0078125 0.0078125 0.05)
(0.03125 0.0078125 0.05)
(0.0625 0.0078125 0.05)
some string might be in here
(0.0078125 0.0078125 0.05)
(0.03125 0.0078125 0.05)
(0.0625 0.0078125 0.05)
)

我想用 pandas 导入它,但我需要帮助来分离数据。

目前我有:

data = pd.read_csv("myFolder/myFile", header = None, skiprows=22, engine ="python")

但是,它将数据导入到单个列中。我想删除数据中的括号和字符串。

对于括号,我有:

data =data.replace(to_replace='\(', value=" ", regex=True)

data =data.replace(to_replace='\)', value=" ", regex=True)

但是,我不知道如何按列拆分数据以及如何删除字符串。

帮助将不胜感激!

标签: python-3.xpandasdataframe

解决方案


您可以使用re模块搜索相关行:

import re
import pandas as pd

r = re.compile(r"^\s*\((.*)\)\s*$")

data = []
with open("your_file.txt", "r") as f_in:
    for line in f_in:
        m = r.search(line)
        if m:
            data.append(m.group(1).split())

df = pd.DataFrame(data)
print(df)

印刷:

           0          1     2
0  0.0078125  0.0078125  0.05
1    0.03125  0.0078125  0.05
2     0.0625  0.0078125  0.05
3  0.0078125  0.0078125  0.05
4    0.03125  0.0078125  0.05
5     0.0625  0.0078125  0.05

推荐阅读