Home  >  Article  >  Backend Development  >  Pandas remove characters from a list of strings

Pandas remove characters from a list of strings

王林
王林forward
2024-02-06 08:21:111238browse

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

Question content

I have a dataframe that contains a date column consisting of strings in this format. I need to strip off the end of the string so it can be converted to a datetime object.

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

I have tried these methods without success.

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'))``

and a few others based on my search. Is there an easy way to do this or should I write a function to slice the string by grabbing the first 17 characters and assigning the result back to a df .

Please note that the format of the string may be '20231101 05:00:00 america/central'

Thanks for all your help.


correct answer


  • If you want to remove a specific suffix, then I recommend str.removesuffix instead of str.strip.
  • Note that you will sometimes write new_york with underscores and sometimes newyork without underscores. If you request that 'newyork' be removed, 'new_york' will not be removed.
  • After editing your question, the suffixes all start with 'america', but are different after that; in this case, you can use str.split(' america'). str[0] retains everything before ' 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

The above is the detailed content of Pandas remove characters from a list of strings. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete