Pandas 从一个数据帧中删除不在另一个数据帧索引中的列

我想从数据帧(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 make

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]):

    # 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 索引的列。


翻阅古今
浏览 228回答 2
2回答

明月笑刀无情

由于某种原因,我无法在 Pandas 中调用列表列表,并且无法编辑元组。最后,我创建了包含数据框和系列的元组列表的副本:# Drop anything not significant from make_resultsfor 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 += 1makes_train_test_sets = new_train_test_sets

红颜莎娜

如果我理解您想要正确执行的操作,那么您似乎使用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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python