Jeśli nie chcą przepisać nazwę starych kolumn, to można użyć REINDEX:
df.reindex(columns=[*df.columns.tolist(), 'new_column1', 'new_column2'], fill_value=0)
Pełny przykład:
In [1]: df = pd.DataFrame(np.random.randint(10, size=(3,1)), columns=['A'])
In [1]: df
Out[1]:
A
0 4
1 7
2 0
In [2]: df.reindex(columns=[*df.columns.tolist(), 'col1', 'col2'], fill_value=0)
Out[2]:
A col1 col2
0 1 0 0
1 2 0 0
A jeśli masz już listę z nazwami kolumn:
In [3]: my_cols_list=['col1','col2']
In [4]: df.reindex(columns=[*df.columns.tolist(), *my_cols_list], fill_value=0)
Out[4]:
A col1 col2
0 1 0 0
1 2 0 0
Dzięki, że to możliwe, że czegoś mi brakuje, ale dodałem 'pd.concat ([df, pd.DataFrame (kolumny = list ('BCD'))]) '- to nic nie robi. Czy to dlatego, że używam 'df = pd.read_csv', a nie' df = pd.DataFrame'? – Winterflags
Musisz przypisać wynik concat, więc 'df = pd.concat ([df, pd.DataFrame (columns = list ('BCD'))])' – EdChum
Dzięki, to działało. Czy mogę dołączyć kolumny do ostatniej kolumny? Nowe kolumny zostaną dodane na początku. Wygląda na to, że concat dokonuje automatycznej zmiany kolejności, ponieważ moje oryginalne kolumny również są przenoszone. – Winterflags