我在一个文件夹中有几个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
有人可以帮我吗?
答案 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)
并由concat
与dfs = [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