簡體   English   中英

循環熊貓列名稱以創建新的數據框

[英]Looping Pandas Column Names To Create New Data Frame

我試圖循環數據框中的列,並且當列名符合條件時,創建一個新數據框和/或將其添加到現有數據框。 例如,我當前的數據框具有以下列名稱:

打開高低IVV音量打開高低EWH音量打開高低INDY音量打開高低EWG音量打開高低ENZL音量

我想要一個可以找到IVV,EWH,INDY,EWG和ENZL並將其添加到自己的數據框中的循環。

我嘗試了以下方法:

Indexlist = ['IVV', 'EWH', 'INDY', 'EWG', 'ENZL']

嘗試刪除值列:

for column in data:
    print(column)
    if column != Indexlist:
        data.drop([column], axis=0))

嘗試刪除列

for column in data:
    print(column)
    if column != Indexlist:
        del data[column]

嘗試選擇列

data_sample = data[column].isin(Indexlist)

所有這些方法都引發錯誤。

我認為,需要通過檢查列名的子str.contains用正則表達式-通過加入列表的所有值| 對於OR

data1 = data.loc[:, data.columns.str.contains('|'.join(Indexlist))]

如果需要按列名稱選擇,請使用子集:

data1 = data[Indexlist]

您可以將pd.Index.isinpd.DataFrame.loc一起使用以進行布爾索引:

data_sample = data.loc[:, data.columns.isin(Indexlist)]

或直接索引,如果您事先知道所有列表元素都以列的形式存在於數據框中:

data_sample = data[Indexlist]

暫無
暫無

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

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