[英]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.isin
與pd.DataFrame.loc
一起使用以進行布爾索引:
data_sample = data.loc[:, data.columns.isin(Indexlist)]
或直接索引,如果您事先知道所有列表元素都以列的形式存在於數據框中:
data_sample = data[Indexlist]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.