Как итеративно добавлять несколько столбцов из одного кадра данных в другой? - PullRequest
0 голосов
/ 24 марта 2020

Предположим, 2 кадра данных (тип с плавающей запятой), с одинаковым индексом / числом строк и динамическими числами c число столбцов, сгенерированных некоторой функцией.

    df1                       df2 
    0      avg          0      1         avg      
0   1.1    1.1      0   2.1     2.4      2.25
1   1.2    1.2      1    2.2    2.5      2.35
2   1.3   1.3       2    2.3    2.6      2.45

Я хотел бы получить от каждого df , все столбцы, кроме последнего, и добавляем их к новому df итеративным способом.

я пробовал следующее

df_lst=[df1, df2]
total_df=pd.DataFrame()

for frame in df_lst:
    total_df=pd.concat(total_df, frame.iloc[:, 0:-1])

, но по какой-то причине new_df имеет значения NaN для последнего добавленные столбцы

Может кто-нибудь объяснить, почему это происходит? И как я мог это решить? (Я также пытался с объединением, добавлением, назначением, но тогда все столбцы в new_df были пустыми)

желаемый результат будет выглядеть как

new_df
0    1.1    2.1   2.4
1    1.2    2.2   2.5
2    1.3    2.3   2.6

1 Ответ

1 голос
/ 25 марта 2020

Просто добавьте ось в concat:

df_list = [df1,df2]

pd.concat([d.iloc[:, :-1] for d in df_list], axis=1)

Вывод:

     0    0    1
0  1.1  2.1  2.4
1  1.2  2.2  2.5
2  1.3  2.3  2.6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...