由于csv文件中的双引号,Python pandas read_csv无法正确读取行

时间:2019-10-03 18:48:27

标签: python pandas csv

我正在尝试使用熊猫read_csv读取csv文件(在excel中创建)。 csv文件的格式为:

some text,some number,some text,some text,amount
SWE-WWW,123344422,Hello,SWE,"1,222.50 SEK"
SWE-W12,3124123412,Hello,SWE,450.50 SEK

我的问题是,“金额”列中的值中的引号(“)导致整行被读取为字符串,并放在数据帧的第一列中。

因此,当我阅读并打印csv文件时:

test = pd.read_csv('test.csv', quotechar='"', sep=',')
print(test)

我得到输出:

   some text    some number    some text.1    some text.2    amount
0  SWE-WWW,123344422,Hello,SWE,"1,222.50 SEK"  NaN  NaN  NaN  NaN
1  SWE-W12     3.124123e+09          Hello           SWE     450.50 SEK

您会看到pandas不会将第1行转换为字符串,因为“金额”列中的值中没有引号。

如何读取csv文件并获取列中结构化的数据?

1 个答案:

答案 0 :(得分:-1)

在读取CSV tp pandas时,每列都会得到dtype(您可以运行df.describe()) 字符串比整数高。 pandas中的最高级别是Object

您可以运行:

df['amount'] = df['amount'].apply(lambda x: float(x))

如果您确定所有列均为数字