Может быть, я что-то упустил;этот подход работает для вас?
import pandas as pd
df = pd.DataFrame(["text1, text2, text3, text4", "text1, text2, text3, text4, text5"], columns=["column_name"])
print(df)
Вывод:
column_name
0 text1, text2, text3, text4
1 text1, text2, text3, text4, text5
Разделить один столбец на несколько столбцов:
df_split = df["column_name"].str.split(",", expand=True)
print(df_split)
Вывод:
0 1 2 3 4
0 text1 text2 text3 text4 None
1 text1 text2 text3 text4 text5
Вы можете переименовать столбцы после этой операции.
df_split.rename(columns={0:"column1"}, inplace=True)
print(df_split)
Вывод:
column1 1 2 3 4
0 text1 text2 text3 text4 None
1 text1 text2 text3 text4 text5
Альтернативный подход после вашего комментария:
df = pd.DataFrame([["text1, text2, text3, text4",
"text1, text2, text3, text4, text5"],
["text1, text2, text3, text4",
"text1, text2, text3, text4, text5"]],
columns=["column1", "column2"])
print(df)
list_of_dfs = []
for col in df.columns:
temp_df = df[col].str.split(",", expand=True)
print(temp_df)
list_of_dfs.append(temp_df)
split_df = pd.concat(list_of_dfs)
print(split_df)
Пример вывода:
0 1 2 3
0 text1 text2 text3 text4
1 text1 text2 text3 text4
0 1 2 3 4
0 text1 text2 text3 text4 text5
1 text1 text2 text3 text4 text5
0 1 2 3 4
0 text1 text2 text3 text4 NaN
1 text1 text2 text3 text4 NaN
0 text1 text2 text3 text4 text5
1 text1 text2 text3 text4 text5