关于pandas:在python中的空格后过滤掉CSV值

Filter out CSV values after a space in python

因此,我的目标是读取一个地理编码程序创建的csv文件,该文件使用空间和纬度或经度值放置了令人讨厌的字符串值……我可以遍历所有这些Excel单元格并手动拆分它们,但我真的希望读取csv,而只是使用空间作为分隔符并过滤掉所有字符串值。我知道如何导入csv,甚至知道如何指定空格作为分隔符,我想我……但我不明白的是如何过滤掉所有字符串值,只将数值保存在全新的Excel工作表中。有人知道怎么做吗?

这是我迄今为止用来分隔空白的代码:pd.read_csv('file.csv',delim_whitespace=true)


使用pd.read_csv读取csv,使用select_dtypes只选择数值列,使用to_csv只将数值列保存到csv。

1
2
df = pd.read_csv('file.csv', delim_whitespace=True)
df.select_dtypes(['float']).to_csv('file.csv')

如果您的文件没有头文件,则在读取csv时需要添加header=None

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
df

     a  b    c
0  1.0  0  foo
1  2.0  0  NaN
2  1.0  1  bar
3  1.0  1  foo
4  NaN  1  baz
5  3.0  1  foo
6  3.0  1  bar

df.select_dtypes(['float'])

     a
0  1.0
1  2.0
2  1.0
3  1.0
4  NaN
5  3.0
6  3.0

如果出于某种原因,您有要保存的内部列,请将float更改为number

1
2
3
4
5
6
7
8
9
10
df.select_dtypes(['number'])

     a  b
0  1.0  0
1  2.0  0
2  1.0  1
3  1.0  1
4  NaN  1
5  3.0  1
6  3.0  1

再挂一个.to_csv电话。


如果您按照应该的方式将数据分开,则可以使用此选项:

1
df.convert_objects(convert_numeric=True).dropna(axis=1)

最后可以添加.to_csv('your_file_name.csv')