【发布时间】:2017-07-31 22:21:10
【问题描述】:
给定一个数据框:
Data
1 246804
2 135272
3 898.01
4 3453.33
5 shine
6 add
7 522
8 Nan
9 string
10 29.11
11 20
我想要两个新列 Floats 和 Strings,它们的长度都与原始数据帧相同。获取Floats 列很容易:
In [176]: pd.to_numeric(df.Data, errors='coerce')
Out[176]:
1 246804.00
2 135272.00
3 898.01
4 3453.33
5 NaN
6 NaN
7 522.00
8 NaN
9 NaN
10 29.11
11 20.00
Name: Data, dtype: float64
如您所见,非浮点数被强制转换为NaN,这正是我想要的。
要获取字符串,我是这样做的:
In [177]: df[df.Data.str.isalpha()]
Out[177]:
Data
5 shine
6 add
8 Nan
9 string
但正如您所见,它不会将非字符串值保留为NaN。我想要这样的东西:
1 NaN
2 NaN
3 NaN
4 NaN
5 shine
6 add
7 NaN
8 Nan (not NaN)
9 string
10 NaN
11 NaN
我怎样才能让它这样做?
【问题讨论】:
标签: python pandas dataframe nan