簡體   English   中英

Pandas合並如何避免未命名的列

[英]Pandas merge how to avoid unnamed column

我想要合並兩個DataFrame:

DataFrame A columns: index, userid, locale  (2000 rows)  
DataFrame B columns: index, userid, age     (300 rows)

當我執行以下操作時:

pd.merge(A, B, on='userid', how='outer')

我有一個包含以下列的DataFrame:

index,Unnamed:0,userid,locale,age

index列和Unnamed:0列完全相同。 我猜Unnamed:0列是DataFrame B的索引列。

我的問題是:在合並兩個DF時,有沒有辦法避免這個Unnamed列?

之后我可以刪除Unnamed列,但只是想知道是否有更好的方法來做到這一點。

總之,您正在做的是將索引保存到文件,當您從文件中讀回時,先前保存為index的列將作為常規列加載。

有幾種方法可以解決這個問題:

方法1

pandas.DataFrame保存到磁盤時,請使用index=False如下所示:

df.to_csv(path, index=False)

方法2

從文件讀取時,您可以定義要用作索引的列,如下所示:

df = pd.read_csv(path, index_col='index')

方法3

如果方法#2由於某種原因不適合您,您可以隨后將列設置為稍后用作索引,如下所示:

df.set_index('index', inplace=True)

在此之后,您的datafame應如下所示:

        userid    locale    age
index
    0    A1092     EN-US     31
    1    B9032     SV-SE     23

我希望這有幫助。

將DataFrame保存為CSV文件時( df.to_csv('...', index=False) )或者如果必須處理無法更改/編輯的CSV文件,請使用usecols參數:

A = pd.read_csv('/path/to/fileA.csv', usecols=['userid','locale'])

為了擺脫Unnamed:0列......

暫無
暫無

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

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