更改CSV中的每个单元格

时间:2018-12-12 11:12:08

标签: python csv

在我的CSV文件中,我具有以下内容:

     Name    Installs 
----|-------------------
    |a         4+
    |b         15+
    |c         60+
    |d         5+

如何使用pandas遍历“安装”列以删除最后的加号?并将内容保存到现有的CSV文件中。

5 个答案:

答案 0 :(得分:1)

您可以使用df["Installs"].str.strip("+")str.rstrip("+")

例如:

import pandas as pd

df = pd.DataFrame({"Name": ['a', 'b', 'c', 'd'], "Installs": ["4+", "15+", "60+", "5+"]})
df["Installs"] = df["Installs"].str.strip("+")
print(df)

输出:

  Installs Name
0        4    a
1       15    b
2       60    c
3        5    d

答案 1 :(得分:1)

import pandas as pd
df=pd.read_csv('csv_name.csv')
df['Installs']=df['Installs'].str.strip('+')
df.to_csv('output.csv',index=False)

答案 2 :(得分:0)

类似的事情应该起作用:

df = pd.read_csv("your_file_name_here.csv")
df["Installs"] = df["Installs"].apply(lambda x: x.replace("x","")
df.to_csv("your_new_file_path_here.csv")

答案 3 :(得分:0)

使用Series.str[:-1]或将其切成薄片:

df['Installs']=df['Installs'].str[:-1]

现在:

print(df)

是:

  Installs Name
0        4    a
1       15    b
2       60    c
3        5    d

如果要将它们作为整数,请执行以下操作:

df['Installs']=df['Installs'].str[:-1].astype(int)

答案 4 :(得分:0)

您也可以使用str.rstrip()手动执行此操作:

with open('data.csv') as f, open('output.csv', mode='w') as o:
    for line in map(str.rstrip, f):
        o.write(line.rstrip('+') +'\n')

其中提供了以下 output.csv

     Name    Installs
----|-------------------
    |a         4
    |b         15
    |c         60
    |d         5

您还可以在此处使用str.rsplit()

o.write(line.rsplit('+', 1)[0] + '\n')