如何从另一个csv文件添加列

时间:2019-10-23 12:25:36

标签: python pandas

我在一个文件夹中有几个csv文件。它是第60个文件。因此,我想制作一个新的csv文件,并且每个文件仅使用两列,如下所示:

这是一个示例:

1.csv                2.csv              3.csv            4.csv and so on...

a   b   c   d        a   b   c   d      a   b   c   d    a   b   c   d
1   2   3   4        8   3   5   7      2   9   4   6    3   6   8   3
4   2   8   3        6   3   6   7      9   3   4   5    3   6   6   8
3   9   4   8        9   3   4   2      4   7   4   4    1   8   3   5 

我想在每个csv文件中仅添加两列...

我已经尝试过以下脚本:

import os
import glob
import pandas as pd
import csv

path = "C:/Users/SYIFAAZRA/Documents/belajar_wradlib/Skew-T/"
os.chdir(path)

file = glob.glob("*.csv")

x=0
for files in file:
    x=x+1

    df = pd.read_csv(files, delimiter=',', skiprows=7, usecols=[11, 22])
    df1 = df.merge(df, how='right')
    df2 = pd.concat([df1])

print (df2)

我想创建一个新列,如下所示:

a   b   a   b   a   b   a   b
1   2   8   3   2   9   3   6
4   2   6   3   9   3   3   6
3   9   9   3   4   7   1   8

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

由于已按参数const过滤的列会在循环中创建DataFrame列表:

usecols

或在列表理解中:

path = "C:/Users/SYIFAAZRA/Documents/belajar_wradlib/Skew-T/"
os.chdir(path)

filenames = glob.glob("*.csv")

dfs = []
for f in filenames:
    df = pd.read_csv(f, delimiter=',', skiprows=7, usecols=[11, 22])
    dfs.append(df)

并由concatdfs = [pd.read_csv(f, delimiter=',', skiprows=7, usecols=[11, 22]) for f in filenames] 一起加入:

axis=1

避免出现列名重复的更好解决方案是使用df2 = pd.concat(dfs, axis=1) print (df2) 参数创建MultiIndex,然后用keys s对其进行展平:

f-string