我有一个要清理的数据框,我有一列带有一些整数和一些时间戳。我想删除列中具有整数值的行,而只保留带有时间戳的行。
df.col.unique() #gives
array([Timestamp('2017-05-27 00:00:00'), Timestamp('2017-05-30 00:00:00'),
Timestamp('2017-05-25 00:00:00'), Timestamp('2017-05-24 00:00:00'),
43249, 43225, 43245, 43228, 43246,
Timestamp('2018-09-21 00:00:00'), Timestamp('2018-09-04 00:00:00')]
我想删除具有int值的行并保留时间戳记日期。
答案 0 :(得分:1)
使用它来过滤数据框
df[~df.col.map(lambda x: isinstance(x,int))]
答案 1 :(得分:1)
以下是使用pd.to_numeric
和Series.isna
的有效示例:
# Example df
df = pd.DataFrame({'timestamp': ['2019-01-01', 2, '2019-01-02', 3, '2019-01-03']})
timestamp
0 2019-01-01
1 2
2 2019-01-02
3 3
4 2019-01-03
df[pd.to_numeric(df['timestamp'], errors='coerce').isna()]
timestamp
0 2019-01-01
2 2019-01-02
4 2019-01-03