gpt4 book ai didi

python - 错误值Error : cannot reindex from a duplicate axis because of concatenating dataframes

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:31 25 4
gpt4 key购买 nike

我在我的项目中实现了实验环境。

该组件基于 Scikit learn。

在此组件中,我将给定的 CSV 读入 pandas 数据帧。之后,我选择了最佳特征并将给定数据帧的维度从 100 减少到 5。之后,我将删除的 ID 列添加到这个简化的数据框中以供将来使用。该列在降维过程中被删除。

一切正常,直到我更改代码以读取所有 CSV 文件并返回一个联合数据帧:

请看下面的代码:读取所有 CSV:

dataframes = []

from os import listdir
from os.path import isfile, join
files_names = [f for f in listdir(full_path_directory_files) if isfile(join(full_path_directory_files, f))]
for file_name in files_names:
full_path_file = full_path_directory_files + file_name

data_frame = pd.read_csv(full_path_file, index_col=None, compression="infer")
dataframes.append(dataframe)

之后我在数据帧之间进行了串联

features_dataframe = pd.concat(dataframes, axis=0)

我也查了一下。我创建了两个不同的数据框,形状 = (200, 100)连接后变成 (400, 100)

之后数据帧被发送到以下方法:

 def _reduce_dimensions_by_num_of_features(self, features_dataframe, truth_dataframe, num_of_features):
print("Create dataframe with the {0} best features".format(num_of_features))

## In those functions I got the ids and their class

ids, id_series = self._create_ids_by_dataframe(features_dataframe)
features_dataframe_truth_class = self._extract_truth_class_by_truth_dataframe(truth_dataframe, ids)


k_best_classifier = SelectKBest(score_func=f_classif, k=num_of_features)
k_best_features = k_best_classifier.fit_transform(features_dataframe, features_dataframe_truth_class)

reduced_dataframe_column_names = self._get_k_best_feature_names(k_best_classifier, features_dataframe)


reduced_dataframe = pd.DataFrame(k_best_features, columns=reduced_dataframe_column_names)

现在我检索了 ID 列:

    reduced_dataframe["Id"] = id_series

软件在消息上失败:

ValueError: cannot reindex from a duplicate axis

这仅在数据帧连接之后发生。

如何将 ID 列添加到数据框中而不出现错误?

最佳答案

我发现了问题:

连接数据帧后,索引发生更改,当我们添加行时:

reduced_dataframe["Id"] = id_series

我们遇到错误。

解决方案是重置索引:

features_dataframe = pd.concat(dataframes, axis=0)
features_dataframe.reset_index(drop=True, inplace=True)

关于python - 错误值Error : cannot reindex from a duplicate axis because of concatenating dataframes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39975957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com