从 Pandas DataFrame 中删除引号中的字符串部分

Removing parts of a string in quotation marks from a Pandas DataFrame

我写了一个 .csv 到 Pandas DataFrame 并且需要删除一些列值。

例如,state 需要删除“'region:'”,但是我尝试使用 inc replace()lstrip() 的任何代码似乎都不起作用。我认为这是因为我要删除的字符串值本身包含单引号。

有人有什么建议吗?

E.G 'region':'CA' 应该是 'CA'

试试下面的代码:

restaurant_df['state'] = restaurant_df['state'].apply(lambda x: x.split(':')[1])

restaurant_df['state'] = restaurant_df['state'].map(lambda x: x.lstrip("'region':" ))

你也可以试试这个:

restaurant_df.state=restaurant_df.state.str.replace("'region':",'')
  • 要清洁电池,split on ': ', with expand=True. Take element [1], and then replace 额外的 ' 来自琴弦周围。
  • 对我来说看起来像 ': ',但如果没有 space,则在 ':'
  • 上拆分
  • 对于 .replace,请尝试 .replace("'", '').replace('"', '')
import pandas as pd

# sample
restaurant_df = pd.DataFrame({'state': ["'region': 'CA'"], 'latitude': ["'latitude': 37.787086"], 'longitude': ["'longitude': -122.400212"],
                              'tel': ["'tel': '(415) 512-8113'"], 'price': ["'price': '1'"], 'rating': ["'rating': 3.0"]})


# display
            state               latitude                 longitude                      tel         price         rating
0  'region': 'CA'  'latitude': 37.787086  'longitude': -122.400212  'tel': '(415) 512-8113'  'price': '1'  'rating': 3.0

# fix all the columns with "'...: ...'"
cols = ['state', 'latitude', 'longitude', 'tel', 'price', 'rating']

for col in cols:
    restaurant_df[col] = restaurant_df[col].str.split(': ', expand=True)[1].str.replace("'", '')

# display repaired dataframe
  state   latitude    longitude             tel price rating
0    CA  37.787086  -122.400212  (415) 512-8113     1    3.0