python中读取德语csv文件的问题
我有一个德语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
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列对我很有用,谢谢!