簡體   English   中英

Pandas:將列名添加到多個 csv 文件的第三列

[英]Pandas: Add column name to third column for multiple csv files

我在同一目錄中有多個 csv 文件。 每個 csv 文件包含 3 列,但在第 3 列中,缺少列名。 要讀取所有 csv 個文件,我必須使用error_bad_lines=False 現在,我想將列名c3添加到多個 csv 文件的第三列。

樣本 df:

v     info  
12    days    6
53    x       a
42    y       b 

預計 output:

    v    info   c3
0  12    days    6
1  53    x       a
2  42    y       b 

首先,將索引“v”轉換為列

df = df.reset_index()

然后,您可以簡單地更改列。

df.columns = ["v", "info", "c3"]

最后,

import pandas as pd
for file in os.listdir(directory):
    if file.endswith(".csv"):
        df = pd.read_csv(file)
        df = df.reset_index() # this is option line
        df.columns = ["v", "info", "c3"]
        df.to_csv(file)


        

不確定你的 csv 長什么樣,所以我假設你的 csv 是:

v,info,
12,days,6
53,x,a
42,y,b

不管怎樣,您可以將所有 csv 文件加載到一個目錄中並更改列名,如下所示:

import pandas as pd
import glob

for f in glob.glob("C:\*.csv"):
    print(f)  # f is a file name
    df = pd.read_csv(f)
    df.reset_index() # add index column, 0, 1, 2, ...
    df.columns = ['v', 'info', 'c3'] # change column names
    df.to_csv(f)  # save it (overwriting)

您可以在此處詳細了解如何使用glob加載目錄中的文件: https://www.geeksforgeeks.org/how-to-use-glob-function-to-find-files-recursively-in-python/

利用:

a = pd.DataFrame({'v': [12,53,42], 'info':['days','x','y'], '':[6,'a','b']})
cols = list(a.columns)[:2]
cols.append('col3')
a.columns = cols
a

output:

在此處輸入圖像描述

或者,簡單地說:

a.rename(columns={'':'new'})

暫無
暫無

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

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