令人驚訝的是找不到一個簡單的答案。我的數(shù)據(jù)框中有兩列。第 1 列是int64.Column1 Column219970101 40019970102 30019980101 200如何刪除帶有1997模式的行Column1?我相信它不是一個字符串,所以正則表達式不起作用。我想我可以將它分成兩部分并刪除所有行,只需分開1997,然后再次組合,但如果能找到一個更簡單的解決方案就太好了。
2 回答

HUX布斯
TA貢獻1876條經(jīng)驗 獲得超6個贊
出色地:
df[df['Column1']//10000 != 1997]
或者將其轉(zhuǎn)換為字符串:
df[df['Column1'].astype(str).str[:4] != '1997']

慕村225694
TA貢獻1880條經(jīng)驗 獲得超4個贊
然后轉(zhuǎn)換為str
df[~df['Column1'].astype(str).str.startswith('1997')]
Out[49]:
Column1 Column2
2 19980101 200
當我們使用 datetime 對象時,我們總是可以這樣做to_datetime
df[pd.to_datetime(df.Column1,format='%Y%m%d').dt.year!=1997]
Out[52]:
Column1 Column2
2 19980101 200
添加回答
舉報
0/150
提交
取消