亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Pandas 從一個數據幀中刪除不在另一個數據幀索引中的列

Pandas 從一個數據幀中刪除不在另一個數據幀索引中的列

翻閱古今 2022-01-11 15:53:43
我想從數據幀(make_results 中的 df)中獲取索引,并確保只有索引是其他兩個數據幀(X_train、X_test)中的列。但我目前收到錯誤:TypeError:不可散列的類型:'numpy.ndarray'這適用于列表中的多個數據框。所以對于這些數據幀: Dataframes X_Train 和 T_test我希望他們只有與這些索引匹配的列: 索引# Remove variables with no relationship from the X_train and X_test data for each makefor X_train, X_test in zip([t[0] for t in makes_train_test_sets],                             [t[1] for t in makes_train_test_sets]):    # Remove test and training data any insignificant variables    X_train = X_train.filter(df.index.values for df in make_results)    X_test = X_test.filter(df.index.values for df in make_results)對于數據集 X_train 和 X_test,剩下的唯一列應該是在 make_results 中為 df.index.values 索引的列。
查看完整描述

2 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

由于某種原因,我無法在 Pandas 中調用列表列表,并且無法編輯元組。最后,我創建了包含數據框和系列的元組列表的副本:


# Drop anything not significant from make_results

for datas in make_results:

    datas.drop(datas.loc[datas['P>|z|'] > .05].index, inplace=True)



def remove_others(t, cols):

    tuple_list = list(t)

    tuple_list[0] = tuple_list[0][cols]

    tuple_list[1] = tuple_list[1][cols]

    return tuple(tuple_list)



new_train_test_sets = []


list_index = 0


#for df in make_results:

for t in makes_train_test_sets:

    new_train_test_sets.append(remove_others(t, make_results[list_index].index.values))

    list_index += 1



makes_train_test_sets = new_train_test_sets


查看完整回答
反對 回復 2022-01-11
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

如果我理解您想要正確執行的操作,那么您似乎使用filter了錯誤的方式。


如果您只是想知道如何過濾出作為另一個索引存在的數據框中的列,則需要使用:


X_train.filter(df.index)

如果要遍歷可迭代對象中的所有數據幀并一一過濾:


for X_train, X_test in zip([t[0] for t in makes_train_test_sets], 

                            [t[1] for t in makes_train_test_sets]):

    for df in mask_results:

        X_train = X_train.filter(df.index)

        X_test = X_test.filter(df.index)

您還可以以前“獲取”這些數據幀的所有索引并僅過濾一次:


index_set = set()

for df in mask_results:

    index_set = index_set.union(df.index)


for X_train, X_test in zip([t[0] for t in makes_train_test_sets], 

                            [t[1] for t in makes_train_test_sets]):

    X_train = X_train.filter(index_set)

    X_test = X_test.filter(index_set)


查看完整回答
反對 回復 2022-01-11
  • 2 回答
  • 0 關注
  • 251 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號