В документах , по крайней мере, начиная с версии 0.24.2, указано, что pandas.concat может игнорировать индекс, с ignore_index = True, но
Обратите внимание на значения индексана других осях все еще соблюдаются в соединении.
Есть ли способ избежать этого, то есть объединить, основываясь только на позиции, и игнорируя имена столбцов?
Я вижу два варианта:
- переименовать столбцы так, чтобы они совпадали, или
- преобразовать в numpy, объединить в numpy, затем из numpy обратно в pandas
Существуют ли более элегантные способы?
Например, если я хочу добавить серию s в качестве дополнительной строки в фрейм данных df, я могу:
- преобразовать s в фрейм
- транспонировать его
- переименовать его столбцы, чтобы они были такими же, как в df
- сцепить
Это работает, но кажется очень "непитонным"!
Ниже приведен пример с игрушкой;этот пример с фреймом данных и рядом, но та же концепция применима к двум фреймам данных.
import pandas as pd
df=pd.DataFrame()
df['a']=[1]
df['x']='this'
df['y']='that'
s=pd.Series([3,'txt','more txt'])
st=s.to_frame().transpose()
st.columns=df.columns
out= pd.concat( [df, st] , axis=0, ignore_index=True)