Python str.strip()删除数字?
我得到了以下数据帧:Python str.strip()删除数字?,python,pandas,Python,Pandas,我得到了以下数据帧: DATE STG #TIME HRD SZ AREA BEAU PSD EFFORT TYPE NORTHING EASTING SEASON BOAT ASSOC. P/S 0 2016-04-06 1 1025 12 W LANTAU 2 58 ON HKCRP 813713 802792 SPRING NONE S 1 2016-04-06 2 1113 3 W LAN
DATE STG #TIME HRD SZ AREA BEAU PSD EFFORT TYPE NORTHING EASTING SEASON BOAT ASSOC. P/S
0 2016-04-06 1 1025 12 W LANTAU 2 58 ON HKCRP 813713 802792 SPRING NONE S
1 2016-04-06 2 1113 3 W LANTAU 4 27 ON HKCRP 806173 802043 SPRING NONE S
2 2016-04-06 3 1345 2 SW LANTAU 2 ND OFF HKCRP 805606 803300 SPRING NONE NaN
当我这样做的时候
#remove space in content
df_obj = sighting.select_dtypes(['object'])
df_obj
sighting[df_obj.columns] = df_obj.apply(lambda x: x.str.strip())
它会删除PSD列中的值,并将其设置为NaN。为什么呢?我怎样才能修好它?谢谢大家! 我敢打赌,对象列PSD包含混合类型的字符串和整数:
In [11]: df_obj.PSD.values
Out[11]: array([58, 27, 'ND'], dtype=object)
In [12]: df_obj.apply(lambda x: x.str.strip())
Out[12]:
DATE SZ AREA PSD EFFORT TYPE SEASON BOAT ASSOC.P/S
0 2016-04-06 W LANTAU NaN ON HKCRP SPRING NONE S
1 2016-04-06 W LANTAU NaN ON HKCRP SPRING NONE S
2 2016-04-06 SW LANTAU ND OFF HKCRP SPRING NONE NaN
您可以通过强制所有对象列为字符串来解决此问题:
In [13]: df_obj.astype("str").apply(lambda x: x.str.strip())
Out[13]:
DATE SZ AREA PSD EFFORT TYPE SEASON BOAT ASSOC.P/S
0 2016-04-06 W LANTAU 58 ON HKCRP SPRING NONE S
1 2016-04-06 W LANTAU 27 ON HKCRP SPRING NONE S
2 2016-04-06 SW LANTAU ND OFF HKCRP SPRING NONE nan
注意:您可以看到这并不完美,因为NaN
已转换为'NaN'
。。。你可以解决这个问题。尽管我怀疑有更好的方法:
我敢打赌,对象列PSD包含混合类型的字符串和整数:
In [11]: df_obj.PSD.values
Out[11]: array([58, 27, 'ND'], dtype=object)
In [12]: df_obj.apply(lambda x: x.str.strip())
Out[12]:
DATE SZ AREA PSD EFFORT TYPE SEASON BOAT ASSOC.P/S
0 2016-04-06 W LANTAU NaN ON HKCRP SPRING NONE S
1 2016-04-06 W LANTAU NaN ON HKCRP SPRING NONE S
2 2016-04-06 SW LANTAU ND OFF HKCRP SPRING NONE NaN
您可以通过强制所有对象列为字符串来解决此问题:
In [13]: df_obj.astype("str").apply(lambda x: x.str.strip())
Out[13]:
DATE SZ AREA PSD EFFORT TYPE SEASON BOAT ASSOC.P/S
0 2016-04-06 W LANTAU 58 ON HKCRP SPRING NONE S
1 2016-04-06 W LANTAU 27 ON HKCRP SPRING NONE S
2 2016-04-06 SW LANTAU ND OFF HKCRP SPRING NONE nan
注意:您可以看到这并不完美,因为NaN
已转换为'NaN'
。。。你可以解决这个问题。尽管我怀疑有更好的方法:
请提供a。请提供a。NaN和NaN是否相同?@JOHN here NaN是字符串
'NaN'
,而不是NaN
/np.NaN
(浮点数)。NaN和NaN是否相同?@JOHN here NaN是字符串'NaN'
,而不是NaN
/np.NaN
(浮点数)。