簡體   English   中英

遍歷 dataframe 行並替換特定列中的字符串元素

[英]Iterate through dataframe rows and replace elements of strings within a specific column

我有一些來自勞工統計局的表格,我將它們轉換為 Python 中的 cvs 文件。 “項目”列有一些帶有多個“。”的行。 我正在嘗試遍歷這些行並替換這些“。” 和 ''。

我試過了:

for row in age_df_1989['Item']:
   if '.' in row:
      age_df_1989['Item'].replace('.','')

關於我可以為此做些什么的任何想法?

沒有將age_df_1989['Item'].replace('.','')分配給變量不會更改原始數據,您需要這樣做:

for row in age_df_1989['Item']:
   if '.' in row:
      row['Item'] = row['Item'].replace('.','')

嘗試apply

age_df_1989['Item'] = age_df_1989['Item'].apply(lambda x: x.replace('.', '')

比 for 循環更簡單、更快

使用矢量化 str 方法replace :這比 iterrows 或 for 循環或應用選項快得多。

你可以做一些簡單的事情

df['column name'] = df['column name'].str.replace('old value','new value')

對於您的示例,請執行以下操作:

age_df_1989['Item'] = age_df_1989['Item'].str.replace('.', '')

這是一個示例 output :

c = ['Name','Item']
d = [['Bob','Good. Bad. Ugly.'],
     ['April','Today. Tomorrow'],
     ['Amy','Grape. Peach. Banana.'],
     ['Linda','Pink. Red. Yellow.']]
import pandas as pd
age_df_1989 = pd.DataFrame(d, columns = c)
print (age_df_1989)
age_df_1989['Item'] = age_df_1989['Item'].str.replace('.', '')
print (age_df_1989)

Dataframe:age_df_1989:原創

    Name                   Item
0    Bob       Good. Bad. Ugly.
1  April        Today. Tomorrow
2    Amy  Grape. Peach. Banana.
3  Linda     Pink. Red. Yellow.

Dataframe:age_df_1989:替換命令后

    Name                Item
0    Bob       Good Bad Ugly
1  April      Today Tomorrow
2    Amy  Grape Peach Banana
3  Linda     Pink Red Yellow

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM