Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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中读取德语csv文件的问题_Python_Pandas_Csv - Fatal编程技术网

python中读取德语csv文件的问题

python中读取德语csv文件的问题,python,pandas,csv,Python,Pandas,Csv,我有一个德语csv文件,我想用pd.read\u csv读取 数据: 原始文件如下所示: 所以它有两列(A,B),分隔符应该是;”, 问题: 当我运行命令时: dataset = pd.read_csv('C:/Users/.../GermanNews/articles.csv', encoding='utf-8', header=None, sep=';') dataset = pd.read_csv('C:/Users/.../GermanNe

我有一个德语csv文件,我想用
pd.read\u csv
读取

数据:

原始文件如下所示:

所以它有两列(A,B),分隔符应该是
;”,

问题: 当我运行命令时:

dataset = pd.read_csv('C:/Users/.../GermanNews/articles.csv',
                      encoding='utf-8', header=None, sep=';')
dataset = pd.read_csv('C:/Users/.../GermanNews/articles.csv',
                      encoding='utf-8', header=None, sep='delimiter')
我得到一个错误:
ParserError:标记数据时出错。C错误:第3行中应包含2个字段,saw 3

半解决方案: 我知道这可能有几个原因,但当我运行命令时:

dataset = pd.read_csv('C:/Users/.../GermanNews/articles.csv',
                      encoding='utf-8', header=None, sep=';')
dataset = pd.read_csv('C:/Users/.../GermanNews/articles.csv',
                      encoding='utf-8', header=None, sep='delimiter')
我将返回以下数据集:

    0
0   Etat;Die ARD-Tochter Degeto hat sich verpflich...
1   Etat;App sei nicht so angenommen worden wie ge...
2   Etat;'Zum Welttag der Suizidprävention ist es ...
3   Etat;Mitarbeiter überreichten Eigentümervertre...
4   Etat;Service: Jobwechsel in der Kommunikations...
所以我只得到一列而不是两列

目标: 我知道如何正确加载数据集:

    0       1
0   Etat    Die ARD-Tochter Degeto hat sich verpflich...
1   Etat    App sei nicht so angenommen worden wie ge...

提示/尝试:

当我在excel中对我的数据运行搜索功能时,我也没有找到任何
在其中


似乎有些行有两列以上(如我的示例的第3行和第13行所示)仔细浏览文本。如果没有找到线索,请遵循以下解决方案。
注意:这不是一个完美的解决方案,而是一个黑客攻击,在我处理德语文本时,已经多次对我有效,因为我没有找到其他解决方案

我只是这样读了一遍,然后通过在第一次出现分隔符时进行拆分,将字符串拆分为两个所需的列

df['col1'] = df[0].str.split(';', 1).str[0]
df['col2'] = df[0].str.split(';', 1).str[1]
输出:

                            0    col1                   col2
0        Etat;Die ARD-Tochter..  Etat        Die ARD-Tochter
1         Etat;App sei nicht...  Etat          App sei nicht 
2  Etat;Mitarbeiter überreich..  Etat  Mitarbeiter überreich
       0    1
0   Etat    Die ARD-Tochter Degeto hat sich verpflich...
1   Etat    App sei nicht so angenommen worden wie ge...
2   Etat    'Zum Welttag der Suizidprävention ist es ...
3   Etat    Mitarbeiter überreichten Eigentümervertre...
4   Etat    Service: Jobwechsel in der Kommunikations...

我刚刚整理了文本以演示示例。

一种可能的解决方案是创建一列
数据框
,在数据中不使用分隔符,如
分隔符
,然后与
n
参数和
expand=True
一起用于新的
数据框

dataset = pd.read_csv('C:/Users/.../GermanNews/articles.csv',
                       encoding='utf-8', header=None, sep='delimiter')

#more general solution is use some value NOT exist in data like yen ¥
#dataset = pd.read_csv('C:/Users/.../GermanNews/articles.csv',
#                      encoding='utf-8', header=None, sep='¥')

df = dataset[0].str.split(';', n=1, expand=True)
df.columns = ['A','B']
print (df)
这对我很有用:

import pandas as pd
df = pd.read_csv('german.txt', sep=';', header = None, encoding='iso-8859-1')
df
输出:

                            0    col1                   col2
0        Etat;Die ARD-Tochter..  Etat        Die ARD-Tochter
1         Etat;App sei nicht...  Etat          App sei nicht 
2  Etat;Mitarbeiter überreich..  Etat  Mitarbeiter überreich
       0    1
0   Etat    Die ARD-Tochter Degeto hat sich verpflich...
1   Etat    App sei nicht so angenommen worden wie ge...
2   Etat    'Zum Welttag der Suizidprävention ist es ...
3   Etat    Mitarbeiter überreichten Eigentümervertre...
4   Etat    Service: Jobwechsel in der Kommunikations...

在你的一个句子中是否有一个;被误解为分隔符?我在excel中搜索了数据集,没有其他;在我的数据集中请提供一个。也许下面的链接已经提供了答案:在你的excel屏幕截图中,第三行被分为三列,因此它也在查找它认为正确的内容这里有一个分隔符。你能分享前三行的全文吗?对不起,这不起作用,因为我的原始数据框中有3列,不只是2列对我很有用,谢谢!