#python #pandas #list #dataframe
Вопрос:
У меня есть фрейм данных df1
id city year
1 LA [2012, 2013, 2014, 2015, 2026]
2 FL []
3 TX [2012, 2013, 2014]
4 NY [2012]
Как я могу преобразовать столбец year
, содержащий список, в строку, разделенную запятыми?
Желаемый результат:
id city year
1 LA 2012, 2013, 2014, 2015, 2016
2 FL none
3 TX 2012, 2013, 2014
4 NY 2012
Примечание: Тип данных столбца year
теперь является строковым.
Ответ №1:
Попробуй:
df["year"] = df["year"].apply(lambda x: ", ".join(map(str, x)))
print(df)
С принтами:
id city year
0 1 LA 2012, 2013, 2014, 2015, 2026
1 2 FL
2 3 TX 2012, 2013, 2014
3 4 NY 2012
Или для none
строки:
df["year"] = (
df["year"].apply(lambda x: ", ".join(map(str, x))).replace("", "none")
)
print(df)
С принтами:
id city year
0 1 LA 2012, 2013, 2014, 2015, 2026
1 2 FL none
2 3 TX 2012, 2013, 2014
3 4 NY 2012
Ответ №2:
Другой подход:
df.loc[:, 'year'] = df.year.apply(str).replace('[[]]', '', regex=True)
Ответ №3:
Попробуй с explode
потом groupby
df.year = df.year.explode().astype(str).groupby(level=0).agg(', '.join)