能否一行代码将CSV文件读取为pandas DataFrame,并将空格(或空单元格)设置为0?下面是问题的说明。
输入:
$ csvlook data.csv
|------+---+------|
| a | b | c |
|------+---+------|
| | a | 0.0 |
| 0 | b | 1.0 |
| 1.5 | c | 2.5 |
| 2.1 | d | 3.0 |
|------+---+------|
我想要什么:
python% print(df)
a b c
0 0 a 0.0
1 0 b 1.0
2 1.5 c 2.5
3 2.1 d 3.0
我尝试过的内容:
df = pd.read_csv('data.csv', dtype={'a': float, 'b': str, 'c': float})
由于第0行列a中的空格,导致出现ValueError错误:
ValueError: could not convert string to float:
在使用pandas读取CSV文件时,是否有一种方法可以将字符串替换为0?
生成测试数据的代码:
如果您想尝试,请使用以下行生成上面示例中的测试数据:
import pandas as pd
df = pd.DataFrame({'a':[' ', 0, 1.5, 2.1], 'b':['a', 'b', 'c', 'd'], 'c': [0, 1, 2.5, 3]})
df.to_csv('data.csv', index=False)