【发布时间】:2018-11-04 18:20:01
【问题描述】:
您如何读取 csv 文件并从中删除一部分,而保留该行的其余部分不变?
如果我有这样的一行:
Chicago,0.6,5.5,1.3,11.1,NewYork,0.0
而我的目标是这样结束:
0.6,5.5,1.3,11.1,0.0
我该怎么做?是否有可能只考虑数字?
【问题讨论】:
标签: string python-3.x csv line
您如何读取 csv 文件并从中删除一部分,而保留该行的其余部分不变?
如果我有这样的一行:
Chicago,0.6,5.5,1.3,11.1,NewYork,0.0
而我的目标是这样结束:
0.6,5.5,1.3,11.1,0.0
我该怎么做?是否有可能只考虑数字?
【问题讨论】:
标签: string python-3.x csv line
可能不是很优雅的解决方案,但你可以试试这个:
import pandas as pd
def isnumber(s):
"""Return True if it is a number, otherwise return False."""
try:
float(s)
return True
except ValueError:
return False
df = pd.read_csv('/PATH/TO/FILE.csv', sep=',', header=None)
df = df[df.applymap(isnumber)].dropna(axis='columns')
df.to_csv('PATH/TO/OUTPUTFILE.csv', sep=',', header=None)
重要提示:如果文件中有更多行,dropna 将删除所有非数字的列。
【讨论】: