[英]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.