簡體   English   中英

如何在 Python 中使用 Pandas 連接 CSV 文件中的列

[英]How to join columns in CSV files using Pandas in Python

我有一個看起來像這樣的 CSV 文件:

# data.csv (this line is not there in the file)
Names, Age, Names
John, 5, Jane
Rian, 29, Rath

當我在 Python 中通過 Pandas 閱讀它時,我得到了這樣的信息:

import pandas as pd

data = pd.read_csv("data.csv")
print(data)

程序的輸出是:

  Names   Age  Names
0  John     5   Jane
1  Rian    29   Rath

有什么辦法可以得到:

  Names   Age  
0  John     5   
1  Rian    29   
2  Jane
3  Rath

首先,我建議為每列使用唯一的名稱。 要么進入 csv 文件並更改列標題的名稱,要么在 Pandas 中這樣做。

使用'Names2'作為第二次出現相同列名的列的標題,試試這個:

從...開始

datalist = [['John', 5, 'Jane'], ['Rian', 29, 'Rath']]
df = pd.DataFrame(datalist, columns=['Names', 'Age', 'Names2'])

我們有

  Names  Age Names
0  John    5  Jane
1  Rian   29  Rath

所以,使用:

dff = pd.concat([df['Names'].append(df['Names2'])
                                    .reset_index(drop=True), 
                 df.iloc[:,1]], ignore_index=True, axis=1)
                .fillna('').rename(columns=dict(enumerate(['Names', 'Ages'])))

得到你想要的結果。

從里到外:
df.append組合列。
pd.concat( ... )df.append的結果與數據幀的其余部分結合起來。

要了解其他命令的作用,我建議將它們一一刪除並查看結果。

請原諒dff 我試圖從教育的角度把一切都說清楚。 調整縮進以便代碼可以編譯。

您可以使用:
usecols有助於僅讀取選定的列。
使用 low_memory以便我們在內部以塊的形式處理文件。

import pandas as pd

data = pd.read_csv("data.csv", usecols = ['Names','Age'], low_memory = False))
print(data)

請在您的 csv 中有唯一的列名

暫無
暫無

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

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