簡體   English   中英

附加多個 CSV 文件並使用 python 中的文件名創建一個新列

[英]Appending multiple CSV files and creating a new column with the filename in python

我正在嘗試使用 pandas 庫,如果有辦法將文件名作為列名,例如,我的文件名帶有日期。

stock_2019-10-11.csv,
stock_2019-11-11.csv.

我想用文件名創建 2 個不同的列,並獲得 append 的值,我希望得到一個 CSV 文件:

   coulmns-primary_key, article_numerber,stock_2019-10-11,stock_2019-11-11

data-0   101,201,4,2
data-1   102,301,5,2

與上面類似,新列的值來自合並的 CSV。

import pandas as pd
import glob
import os
import sys
import csv

data = [] # pd.concat takes a list of dataframes
for csv in globbed_files(my directiry of files):
    frame = pd.read_csv(csv,encoding='utf_16',error_bad_lines=False,index_col=False)
    frame['filename'] = os.path.basename(csv)
    data.append(frame)

frame1 = pd.concat(data, ignore_index=True

)

Firstly add filename as column name toa particular file, then add each file to dataframe.write dataframe to csv (considering each file has a 1 column.Customize the column header as per your columns)

import pandas as pd

df=pd.DataFrame()
filenames=["C:/Users/sghungurde/Documents/server2.csv","C:/Users/sghungurde/Documents/server3.csv"]
i=0
while(i<len(filenames)):
    extracting filename from filepath 
    c1= (filenames[i].split("/")[4]).split(".")[0]
    reading csv file and assigning column name to header
    f1=pd.read_csv(filenames[i],names=[c1])
    adding file column to dataframe
    df[c1]=f1[c1]
    i+=1

print(df)
writing final df merging result to csv
df.to_csv("C:/Users/sghungurde/Documents/merge.csv",index=False)

output

     server2       server3
 209.10.31.50  609.10.31.50
 204.12.31.53  704.12.31.53
 203.12.31.53  903.12.31.53
 102.71.99.13  102.71.99.13

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM