首页 > 解决方案 > 在 _ 每个单元格 python 字符之后删除 csv 中的数据

问题描述

我有一个 csv 文件,里面有一些信息。对于我的用例,我只需要每个单元格中的前四个字符。

因此,使用 python,我需要一个解决方案,理想情况下,我可以在四个字符之后删除每个单元格中的所有字符,并且可以选择删除所有空格。如果我能指出正确的方向,那就太好了!

一一一 二二二 三三三

我的理想输出应该看起来像

一个O 双T

标签: pythonpandascsv

解决方案


似乎您的数据包含一些不是字符串类型的数值。这种情况下,可以先将数据转换成字符串,然后去掉所有空格,最后取每个转换后的字符串的前4个字符,如下:

df = pd.read_csv("mycsv.csv")       # read csv if not already read

df = df.apply(lambda x: x.astype(str).str.replace(' ', '').str[0:4])

df.to_csv("mycsv.csv")             # save to csv 

如果不需要删除空格,可以使用:

df = pd.read_csv("mycsv.csv")       # read csv if not already read

df = df.apply(lambda x: x.astype(str).str[0:4])

df.to_csv("mycsv.csv")             # save to csv 

结果:

print(df)


    one   two three
0  OneO  TwoT  Thre

编辑

如果您只想申请指定列,您可以使用:

例如,仅适用于列onetwo

df = pd.read_csv("mycsv.csv")       # read csv if not already read

df[['one', 'two']] = df[['one', 'two']].apply(lambda x: x.astype(str).str.replace(' ', '').str[0:4])

df.to_csv("mycsv.csv")             # save to csv 

推荐阅读