簡體   English   中英

如何在 df.update() + df.reset_index() 之后保持列順序

[英]How to keep column order after df.update() + df.reset_index()

我有兩個數據框。

data_df

  Investor   Company Name      CUSIP Symbol
0     Hank       FaCeBoOk  30303M102       
1     Dale       Fraud Co  88160R101       
2     Bill    Netflix Inc  64110L106       
3     Kahn                 64110L106       
4    Peggy         Amazon   23135106       
5    Rusty         Costco  22160K105       
6    Bobby  BankAmericard  92826C839       
7     Minh    Placeholder  92826C839       
8   Chappy          Other  29786A106 

cusips_df

         Company Name Symbol      CUSIP
0            Facebook     FB  30303M102
1               Tesla   TSLA  88160R101
2         Netflix Inc   NFLX  64110L106
3              Amazon   AMZN   23135106
4              Costco   COST  22160K105
5                Visa      V  92826C839
6        Mega-Lo Mart    MLM  543535F63
7  Strickland Propane   SPPN  453HGR001
8                Etsy   ETSY  29786A106

我正在匹配CUSIP上的兩個數據幀,然后使用來自cusips_df值更新data_dfCompany NameSymbol

data_df = data_df.set_index('CUSIP')
cusips_df = cusips_df.set_index('CUSIP')
data_df.update(cusips_df)
data_df = data_df.reset_index()
print(data_df)

但是當我這樣做時, CUSIP列會移動到位置0 ,而不是停留在位置2

       CUSIP Investor Company Name Symbol
0  30303M102     Hank     Facebook     FB
1  88160R101     Dale        Tesla   TSLA
2  64110L106     Bill  Netflix Inc   NFLX
3  64110L106     Kahn  Netflix Inc   NFLX
4   23135106    Peggy       Amazon   AMZN
5  22160K105    Rusty       Costco   COST
6  92826C839    Bobby         Visa      V
7  92826C839     Minh         Visa      V
8  29786A106   Chappy         Etsy   ETSY

我知道我可以簡單地對數據框列重新排序,但是有沒有更 Pythonic 的方法來做到這一點,以便data_df中的列的data_df保持不變?

我們可以做的

d=dict(zip(cusips_df.CUSIP, cusips_df.Symbol))
data_df.Symbol.update(data_df.CUSIP.map(d))

暫無
暫無

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

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