Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用数字和空格使read_csv更灵活_Python_Pandas_Csv - Fatal编程技术网

Python 如何使用数字和空格使read_csv更灵活

Python 如何使用数字和空格使read_csv更灵活,python,pandas,csv,Python,Pandas,Csv,我想用Pandas读取一个txt.file,问题是分隔符/定界符由一个数字和最少两个空格组成 我已经尝试过类似于此代码()的方法: 只有当只有一个或多个空白时,这才有效。因此,我将其调整为以下代码 delimiter=r"\d\s\s+" 但这是分离我的数据帧时,它看到两个或更多的空白,但我严格需要的数字之前,它后面至少有两个空白,有人知道如何修复它 我的数据如下: I am an example of a dataframe I have Problems to get read 100,0

我想用Pandas读取一个
txt.file
,问题是分隔符/定界符由一个数字和最少两个空格组成

我已经尝试过类似于此代码()的方法:

只有当只有一个或多个空白时,这才有效。因此,我将其调整为以下代码

delimiter=r"\d\s\s+"
但这是分离我的数据帧时,它看到两个或更多的空白,但我严格需要的数字之前,它后面至少有两个空白,有人知道如何修复它

我的数据如下:

I am an example of a dataframe
I have Problems to get read
100,00
So How can I read it
20,00
import pandas as pd
import re

f = open("whitespace.txt", "r")
g = f.read().replace("\n", " ")

prepared_text = re.sub(r'(\d+,\d+)', r'\1@', g)

df = pd.DataFrame({'My columns':prepared_text.split('@')})
print(df)
所以第一行应该是:
我是数据帧的一个示例,我在读取100,00时遇到问题
然后是第二行:
那我怎么读呢20,00

我就这样试试看

在尝试将文本文件解析为数据帧之前,Id将对其进行操作,如下所示:

I am an example of a dataframe
I have Problems to get read
100,00
So How can I read it
20,00
import pandas as pd
import re

f = open("whitespace.txt", "r")
g = f.read().replace("\n", " ")

prepared_text = re.sub(r'(\d+,\d+)', r'\1@', g)

df = pd.DataFrame({'My columns':prepared_text.split('@')})
print(df)
这就产生了以下结果:

                                          My columns
0  I am an example of a dataframe I have Problems...
1                         So How can I read it 20,00
2 
我想只要输入文件不太大,这就足够了,但是使用re模块和subsition可以提供您想要的控制

(\d+,\d+)括号标记我们要匹配的组。我们基本上在匹配你文本文件中的任何号码。 然后我们使用\1,它被称为对指定替换时引用的匹配组的反向引用。因此,将\d+,\d+替换为\d+,\d+@

然后我们使用插入的字符作为分隔符

这里有一些很好的例子:


分隔符数字是一个特定的数字吗?该数字可以更改尝试此参数:
delim\u whitespace=True
此参数将保留到新列中的每个单词/数字……正在解决中,您能否解释re.Sub后的语法含义?