在输入的CSV文件中说这个。
我想查看Babys
列并将其更改为增加的数字。
我所做的是计算文件中有多少行,并在所有行上运行for循环。 但我无法弄清楚如何更改值
v = open(input.csv)
r=csv.reader(v)
numline = len(v.readlines())
print (numline)
for row in r:
if row["Baby"] == "Baby":
for i in range (1, numline):
print("test")
答案 0 :(得分:4)
使用pandas模块
时,可以非常轻松地完成将pandas导入为pd
# read/parse CSV into pandas data frame
df = pd.read_csv('input.csv', delim_whitespace=True)
输出:
In [33]: df
Out[33]:
Name Age Babys
0 Avi 25 1
1 Dav 24 1
2 Ela 30 1
3 Ron 40 1
4 Shi 33 1
5 Leb 22 1
6 Moe 11 1
有条件地按Babys
1
列
df.loc[(df.Name.isin(['Avi','Dav','Ron'])) & (df.Age < 33), 'Babys'] += 1
输出:
In [35]: df
Out[35]:
Name Age Babys
0 Avi 25 2
1 Dav 24 2
2 Ela 30 1
3 Ron 40 1
4 Shi 33 1
5 Leb 22 1
6 Moe 11 1
对于所有行(无条件地), Babys
列增加1
df.Babys += 1
输出:
In [43]: df
Out[43]:
Name Age Babys
0 Avi 25 3
1 Dav 24 3
2 Ela 30 2
3 Ron 40 2
4 Shi 33 2
5 Leb 22 2
6 Moe 11 2
最后将更改的DF保存回CSV文件:
df.to_csv('d:/temp/out.csv', index=False, sep=',')
out.csv:
Name,Age,Babys
Avi,25,3
Dav,24,3
Ela,30,2
Ron,40,2
Shi,33,2
Leb,22,2
Moe,11,2
答案 1 :(得分:1)
您可以使用python pandas
将列号增加n
:
import pandas
data_df = pandas.read_csv('input.csv')
data_df = data_df['age'].apply(lambda x: x+n)
print data_df
用1
添加n
替换1
。