让我们在输入的 CSV 文件中说明这一点。
我想查看该Babys列并将其更改为将数字增加 1。
我所做的是计算文件中有多少行,并对所有行运行 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")
Run Code Online (Sandbox Code Playgroud)
使用pandas模块时可以很容易地完成
将熊猫导入为 pd
# read/parse CSV into pandas data frame
df = pd.read_csv('input.csv', delim_whitespace=True)
Run Code Online (Sandbox Code Playgroud)
输出:
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
Run Code Online (Sandbox Code Playgroud)
有条件地增加Babys列1
df.loc[(df.Name.isin(['Avi','Dav','Ron'])) & (df.Age < 33), 'Babys'] += 1
Run Code Online (Sandbox Code Playgroud)
输出:
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
Run Code Online (Sandbox Code Playgroud)
为所有行增加Babys列(无条件)1
df.Babys += 1
Run Code Online (Sandbox Code Playgroud)
输出:
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
Run Code Online (Sandbox Code Playgroud)
最后将更改的 DF 保存回 CSV 文件:
df.to_csv('d:/temp/out.csv', index=False, sep=',')
Run Code Online (Sandbox Code Playgroud)
输出.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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11572 次 |
| 最近记录: |