首頁  >  文章  >  後端開發  >  Pandas 從一列字串中刪除字符

Pandas 從一列字串中刪除字符

王林
王林轉載
2024-02-06 08:21:111191瀏覽

Pandas 从一列字符串中删除字符

問題內容

我有一個資料框,其中包含由這種格式的字串組成的日期列。我需要去掉字串的末尾,以便可以轉換為日期時間物件。

"20231101 05:00:00 america/new_york"
"20231101 06:00:00 america/new_york"

我嘗試過這些方法但沒有成功。

df['Date'] = df['Date'].replace('^.*\]\s*', '', regex=True)
df['Date'] = df['Date'].str.strip(' America/New_York')
df['Date'] = df['Date'].map(lambda x: x.rstrip(' America/NewYork'))``

以及根據我的搜尋得出的其他一些內容。有沒有一種簡單的方法可以做到這一點,或者我應該編寫一個函數來透過抓取前 17 個字元並將結果分配回 df 來對字串進行切片。

請注意,字串的格式可能為 '20231101 05:00:00 america/central'

感謝您提供的所有協助。


正確答案


  • 如果您想刪除特定後綴,那麼我建議 str.removesuffix 而不是 str.strip。
  • 請注意,您有時會寫下劃線的 new_york,有時會寫不帶底線的 newyork。如果您要求刪除 'newyork',則 'new_york' 將不會被刪除。
  • 您的問題編輯後,後綴均以'america' 開頭,但後面有所不同;在這種情況下,您可以使用str.split(' america'). str[0] 保留' america' 之前的所有內容。
import pandas as pd

df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Date': ["20231101 05:00:00 America/New_York",
             "20231101 06:00:00 America/New_York",
             "20231101 07:00:00 America/Central"]
})

# df['Date'] = df['Date'].str.removesuffix(' America/New_York')
df['Date'] = df['Date'].str.split(' America').str[0]

print(df)
#      Name               Date
# 0    Alice  20231101 05:00:00
# 1      Bob  20231101 06:00:00
# 2  Charlie  20231101 07:00:00

以上是Pandas 從一列字串中刪除字符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除