簡體   English   中英

如何檢查缺少的標頭並將其添加到 csv 文件

[英]How to check and add missing headers to a csv file

我有一個 CSV 文件,假設共有 6 個列標題,其中第一個 A1(Location) 始終是固定的。 但是,由於動態數據,我有時只能從 CSV 文件的其他 5 個標題中獲得 3 個列標題,並且這些標題可能是從 B1 到 F1 的這 5 列中的任何列。 第一張截圖顯示了我想要的所有列,第二張截圖顯示了我得到的。

包含完整 5 個標題的 CSV 文件

5 個標題中缺少 2 個的 CSV 文件

現在我想做的是,首先應該能夠以某種方式檢查文件中的 header,如果它已經可用,則忽略它,如果它不可用,然后使用 python 將缺少的標題添加到 CSV 文件的下一列中。

注意:僅標題對我來說就足夠了,我會用 0 或空白填充下面的空白行以匹配表格。

請幫助我!

import pandas as pd

file_path='Yourfile.csv' #file name
df = pd.read_csv(file_path) #reading csv file 
df = df.fillna(0) #replace NaN to 0

不幸的是,我知道沒有比 csv 文件中存在的列更多的干凈直接的方法來聲明更多的列。

但是一旦你得到了 Pandas DataFrame,很容易添加缺失的列:

# read a CSV file having missing columns:
tmp = pd.read_csv('file.csv')

#create an empty dataframe with all the expected columns
df = pd.DataFrame(columns=['Location', 'Total', 'Open', 'Checkin', 'Closed', 'Cancelled'])

# just copy the data:
df[tmp.columns] = tmp

就這樣。 缺失的列將用 NaN 值填充。

import pandas as pd

#Read the first excel file content
df1 = pd.read_excel(r'/content/MainFile.xlsx')

#Read the second excel file content where headers are missing
df2 = pd.read_excel(r'/content/ClientFile.xlsx')

現在查找兩個文件之間的不同列並將它們提取到一個新的數據框中:

extracted_col= df1[df1.columns.difference(df2.columns)]

然后將提取的列加入到您丟失的頭文件中。

df2=df2.join(extracted_col)

暫無
暫無

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

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