需要从多个csv文件中选择“第二列”并将所有“第二列”保存在一个csv文件中

问题描述 投票:-2回答:4

所以我有366个CSV文件,我想复制第二列并将其写入新的CSV文件。需要此工作的代码。我尝试了一些可用的代码,但没有任何效果。请帮助。

python pandas csv export-to-csv opencsv
4个回答
0
投票

假设所有第二列的长度相同,则可以简单地循环浏览所有文件。读取它们,将第二列保存到内存中,并在此过程中构造一个新的df。

filenames = ['test.csv', ....]

new_df = pd.DataFrame()

for filename in filenames:
    df = pd.read_csv(filename)
    second_column = df.iloc[:, 1]
    new_df[f'SECOND_COLUMN_{filename.upper()}'] = second_column
    del(df)

new_df.to_csv('new_csv.csv', index=False)

0
投票
    import glob
    import pandas as pd

    mylist = [f for f in glob.glob("*.csv")]
    df = pd.read_csv(csvList[0]) #create the dataframe from the first csv
    df = pd.DataFrame(df.iloc[:,0]) #only keep 2nd column
    for x in mylist[1:]: #loop through the rest of the csv files doing the same
        t = pd.read_csv(x)
        colName = pd.DataFrame(t.iloc[:,0]).columns
        df[colName] = pd.DataFrame(t.iloc[:,0])
        df.to_csv('output.csv', index=False)

0
投票

这可以通过glob和pandas完成:

import glob
import pandas as pd

mylist = [f for f in glob.glob("*.csv")]
df = pd.read_csv(csvList[0]) #create the dataframe from the first csv
df = pd.DataFrame(df.iloc[:,1]) #only keep 2nd column
for x in mylist[1:]: #loop through the rest of the csv files doing the same
    t = pd.read_csv(x)
    colName = pd.DataFrame(t.iloc[:,1]).columns
    df[colName] = pd.DataFrame(t.iloc[:,1])
    df.to_csv('output.csv', index=False)

0
投票
    filenames = glob.glob(r'D:/CSV_FOLDER' + "/*.csv")

    new_df = pd.DataFrame()

    for filename in filenames:
        df = pd.read_csv(filename)
        second_column = df.iloc[:, 1]
        new_df[f'SECOND_COLUMN_{filename.upper()}'] = second_column
        del(df)

    new_df.to_csv('new_csv.csv', index=False)
© www.soinside.com 2019 - 2024. All rights reserved.