使用for循环替换pandas列的每一行中的单元格值 [英] Replace cell values in each row of pandas column using for loop
本文介绍了使用for循环替换pandas列的每一行中的单元格值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
请帮助我理解我的错误.
我正在尝试更改我的.csv
文件中的一列.
我有.csv
文件,如下所示:
Please, help me understand my error.
I'm trying to change one column in my .csv
file.
I have .csv
file as following:
sku,name,code
k1,aaa,886
k2,bbb,898
k3,ccc,342
k4,ddd,503
k5,eee,401
我想用"sku"列中的"_"符号替换"k"符号.
我写了代码:
I want to replace "k" symbol with the "_" symbol in the "sku" column.
I wrote the code:
import sys
import pandas as pd
import numpy as np
import datetime
df = pd.read_csv('cat0.csv')
for r in df['sku']:
r1 = r.replace('k', '_')
df['sku'] = r1
print (df)
但是代码在"sku"列的每一行中插入了最后一个值.所以我得到:
But the code inserts the last value in every row of the "sku" column. So I get:
sku name code
0 _5 aaa 886
1 _5 bbb 898
2 _5 ccc 342
3 _5 ddd 503
4 _5 eee 401
我想要得到以下信息:
sku name code
0 _1 aaa 886
1 _2 bbb 898
2 _3 ccc 342
3 _4 ddd 503
4 _5 eee 401
推荐答案
您可以在整列中使用str.replace
:
from io import StringIO
import pandas as pd
data = """sku,name,code
k1,aaa,886
k2,bbb,898
k3,ccc,342
k4,ddd,503
k5,eee,401"""
file = StringIO(data)
df = pd.read_csv(file)
df['sku'] = df['sku'].str.replace('k', '_')
print(df)
这产生
sku name code
0 _1 aaa 886
1 _2 bbb 898
2 _3 ccc 342
3 _4 ddd 503
4 _5 eee 401
这篇关于使用for循环替换pandas列的每一行中的单元格值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文