为了将列表列转换为行,我们可以使用pandas的explode()函数。我的pandas版本为'0.25.3'。
给定的示例对我有效,Stackoverflow.com上的另一个答案也按预期工作,但对于我的数据集不起作用。
我尝试过的内容:
给定的示例对我有效,Stackoverflow.com上的另一个答案也按预期工作,但对于我的数据集不起作用。
city nested_city
0 soto ['Soto']
1 tera-kora ['Daniel']
2 jan-thiel ['Jan Thiel']
3 westpunt ['Westpunt']
4 nieuwpoort ['Nieuwpoort', 'Santa Barbara Plantation']
我尝试过的内容:
test_data['nested_city'].explode()
并且
test_data.set_index(['nested_city']).apply(pd.Series.explode).reset_index()
输出
0 ['Soto']
1 ['Daniel']
2 ['Jan Thiel']
3 ['Westpunt']
4 ['Nieuwpoort', 'Santa Barbara Plantation']
Name: neighbors, dtype: object
nested_city
是列表还是字符串? - BENYtest_data['nested_city'].apply(type)
),还是只是列表的字符串表示形式。如果是后者,则执行test_data['nested_city'].apply(ast.literal_eval).explode()
。 - ankytype(test_data['nested_city'])
返回的是 pandas.core.series.Series。 - A l w a y s S u n n y<class 'str'>
不是列表类型,而是用于列表类型的explode
。 - BENYdf.join
循环,请查看文档。我会把它留给你作为家庭作业 :) - anky