使用pandas.read_csv() 读取CSV 文件并指定skipinitialspace=True。这将启用默认的“N/A”检测,前导空格会阻止该检测。
>>> from pandas import read_csv
>>> df = read_csv('input.csv', skipinitialspace=True)
>>> df
name Age Status Unnamed: 3
0 Ally 21 Single NaN
1 Daniel 32 Single NaN
2 John NaN Married NaN
3 Baker 25 Single NaN
4 Josh NaN Married NaN
最后一列是空的,是大多数行末尾的, 的结果。你可以删除它:
>>> df.drop(df.columns[-1], axis=1, inplace=True)
>>> df
name Age Status
0 Ally 21 Single
1 Daniel 32 Single
2 John NaN Married
3 Baker 25 Single
4 Josh NaN Married
然后你可以删除不需要的行:
>>> df.dropna(inplace=1)
>>> df
name Age Status
0 Ally 21 Single
1 Daniel 32 Single
3 Baker 25 Single
最终名单由:
>>> ages = list(df['Age'])
>>> ages
[21.0, 32.0, 25.0]
>>> # or, if you want ints...
>>> ages = list(df['Age'].astype(int))
>>> ages
[21, 32, 25]
这是简短的版本:
>>> df = read_csv('input.csv', skipinitialspace=True)
>>> ages = list(df.drop(df.columns[-1], axis=1).dropna()['Age'].astype(int))
>>> print ages
[21, 32, 25]