我有许多.csv文件,其头部看起来像:
09/07/2014,26268315,,
10/07/2014,6601181,16.3857
11/07/2014,916651,12.5879
14/07/2014,213357,,
15/07/2014,205019,10.8607
我需要将其读入数据框并使用,,
删除任何行,但是当我使用以下命令将.csv读入数据框时:
df = pd.read_csv(raw_directory+'\\'+filename, error_bad_lines=False,header=None)
我得到:
0 1 2 3
0 09/07/2014 26268315 NaN NaN
1 10/07/2014 6601181 16.3857 NaN
2 11/07/2014 916651 12.5879 NaN
3 14/07/2014 213357 NaN NaN
4 15/07/2014 205019 10.8607 NaN
有人可以让我知道如何将.csv读入数据框并获取:
0
0 09/07/2014,26268315,,
1 10/07/2014,6601181,16.3857
2 11/07/2014,916651,12.5879
3 14/07/2014,213357,,
4 15/07/2014,205019,10.8607
我需要删除存在,,
的所有行。然后将调整后的数据帧重新保存到新的.csv文件。我要使用:
stringList = [',,']
df = df[~df[0].isin([stringList])]
要删除带有的行,则出现的.csv头看起来像:
10/07/2014,6601181,16.3857
11/07/2014,916651,12.5879
15/07/2014,205019,10.8607
欢呼
答案 0 :(得分:3)
我想这里可以删除所有NaN
的所有列,然后删除任何NaN
的行:
df = df.dropna(axis=1, how='all').dropna()
print (df)
0 1 2
1 10/07/2014 6601181 16.3857
2 11/07/2014 916651 12.5879
4 15/07/2014 205019 10.8607
另一种解决方案是添加分隔符,该分隔符的值不在|
之类的数据中,然后按endswith
进行过滤:
df = pd.read_csv(raw_directory+'\\'+filename, error_bad_lines=False,header=None, sep='|')
df = df[~df[0].str.endswith(',')]
#alternative solution - $ is for end of string
#df = df[~df[0].str.contains(',$')]
print (df)
0
1 10/07/2014,6601181,16.3857
2 11/07/2014,916651,12.5879
4 15/07/2014,205019,10.8607