簡體   English   中英

Pandas dataframe 如何刪除和重命名列

[英]Pandas dataframe how to drop and rename column

對於如下的數據框,我正在嘗試 1)刪除列 B,因為它不在Marker的行值中,2)然后根據值將列 A、C、D 重命名為新名稱 ColA、ColB、ColC在New_Name列下。 有什么方法可以做到這一點? 我是否需要將列 New_Name 放入列表並遍歷 Dataframe 列名 soemhow? 非常感謝您的幫助。

          A     B     C      D        Marker   New_Name
         1.0   0.0   0.0    1.0        A          ColA
         1.0   0.0   0.0    0.0        C          ColC
         0.0   0.0   0.0    0.0        D          ColD
s=df.reindex(columns=df.Marker).\
    rename(columns=dict(zip(df.Marker,df.New_Name))).\
     rename_axis(None,axis=1)
s
   ColA  ColC  ColD
0   1.0   0.0   1.0
1   1.0   0.0   0.0
2   0.0   0.0   0.0

使用映射和 df.rename() 重命名列:

df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
df.rename(columns={"A": "a", "B": "c"})

print(df):

   a    c
0  1  4
1  2  5
2  3  6

因此可以將標記名稱保留為行名稱;

df2=df.drop(columns=['Marker','B']).set_index('New_Name').T.rename_axis('Marker',axis=1)
df2

暫無
暫無

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

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