如何重命名一个文件夹中多个csv文件中的列?

时间:2018-11-16 06:58:55

标签: python pandas

我在一个文件夹中有两个csv文件

https://www.dropbox.com/sh/jyu2rj2ra01vuvb/AADht6uAhJcjnSjIFpNufVlka?dl=0

如何如下重命名文件夹中所有文件的列

S.No    Fruit   Vendor  Price       

输入:

预期输出:

文件df1

S.No    Fruit   VendorA PriceA
1       Apple     AB    89
2       Banana    CA    72      

文件df2

S.No    Fruit   VendorB PriceB
1       Mango       AB  55
2       Watermelon  BC  23

预期输出:

文件df1

S.No    Fruit   Vendor  Price
1       Apple     AB    89
2       Banana    CA    72      

文件df2

S.No    Fruit   Vendor  Price
1       Mango       AB  55
2       Watermelon  BC  23

3 个答案:

答案 0 :(得分:1)

您可以使用此功能:

files = ['df1.csv', 'df2.csv']
for file in files:
    with open(file, 'r') as f:
        data = f.readlines()
    data[0] = 'S.no,Fruit,Vendor,Price'+'\n'
    with open(file, 'w') as f:
        for element in data:
            f.write(element)

答案 1 :(得分:0)

读取pandas个数据帧中的文件:

df = pd.read_csv('df1.csv')

为列列表分配所需的名称

col_list = ['S.No','Fruit','Vendor','Price']

将此col列表分配给数据框

df.columns = col_list

将此数据帧写入另一个csv

df.to_csv('new_df1.csv', index=False)

对所有数据框执行此操作。让我知道是否有帮助。

答案 2 :(得分:0)

如果您没有严格要求使用熊猫。还有其他解决方案会比熊猫更好。

import shutil
import glob

files = glob.glob(".\*.csv")

for i in range(len(files)):
    from_file = open(files[i]) 

    to_file = open(files[i], mode="w")
    to_file.write("S.No,Fruit,Vendor,Price\n")
    shutil.copyfileobj(from_file, to_file)

这样,您可以扩展.csv来获取文件夹中的所有文件。另外,您甚至都不会读一行。这样,如果您的csv文件变大,它的运行速度就会更快。