用python重写csv文件

ajsxfq5m  于 2022-12-30  发布在  Python
关注(0)|答案(2)|浏览(159)

我有这个结构的csv文件:

code1     code2     code3      name1     name2    sometnig1   something2

14355     12345     54133      part1     part12   aaaaaaaa    bbbbbbb
54782     57815     52781      part2     part22   ccccccc     ffffffff
14515     52495     52852      part3     part33   ddddddd     sssssss

我需要解析这个csv文件并创建一个新的csv文件,其中包含我自己的标题和所需的列,例如:

code_1    code_2    name_1    name_2   something_2

14355     12345     part1     part12   bbbbbbb
54782     57815     part2     part22   ffffffff
14515     52495     part3     part33   sssssss

我知道,我可以选择一列,我需要和写它到另一个文件使用Pandas:

df = pd.read_csv(file)
df1 = df[code_1]

但是如何选择多个列并写入一个文件呢?

t40tm48m

t40tm48m1#

可以使用列表选择多列:

df1 = df[['code1', 'code2', 'name1', 'name2', 'something2']]

然后可以使用另一个列表更改列名:

df1.columns = ['code_1', 'code_2', 'name_1', 'name_2', 'something_2']

然后你可以把它写回csv文件

df1.to_csv('new filname.csv')
n8ghc7c1

n8ghc7c12#

最简单的方法是只读取您所关心的列,这样也可以保存一些内存:

df = pd.read_csv(file, usecols=["code_1", "code_2", "name_1", "name_2", "something_2"])
df.to_csv("other_file.csv", index=False)

如果已经有一个df要进行子集化,另一种选择是使用列表来选择您关心的列。

df = df[["code_1", "code_2", "name_1", "name_2", "something_2"]]

相关问题