帮助:将列从删除的字符串转换为列数组

2024-05-23 18:22:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我将csv加载到熊猫数据框中。其中一列包含以分号分隔的单词列表,如

海滩假期;;空间充足;水池

我想把它变成一个数组或集合,比如 [“海滩度假”、“空间充足”、“游泳池”]

或者,可以创建一个从原始列派生的新列

谢谢大家!


Tags: csv数据列表空间数组单词游泳池水池
3条回答

建议的解决方案,尤其是如果每个字符串中的;分隔符数量相同,是创建一个object数据类型系列的数据帧,每个元素都是一个字符串:

df = pd.DataFrame({'A': ['Beach holiday;Plenty of space;Pool',
                         'Mountain holiday;Plenty of grey;Ice']})

df = df['A'].str.split(';', expand=True)

print(df)

                  0                1     2
0     Beach holiday  Plenty of space  Pool
1  Mountain holiday   Plenty of grey   Ice

创建一系列列表,替代方案是不推荐的;它包含一层嵌套的指针

如果希望标题位于列表中,则可以执行此操作

list(df.columns.values)

df[col_name].tolist()

另外,请检查此答案here

您可以选择converters

TESTDATA = StringIO("""
 A,B
1,Beach holiday;Plenty of space;Pool
1,Beach holiday;Plenty of space;Pool
    """)
df = pd.read_csv(TESTDATA ,converters={'B':lambda x : x.split(';')})
df
Out[147]: 
    A                                       B
0   1  [Beach holiday, Plenty of space, Pool]
1   1  [Beach holiday, Plenty of space, Pool]

相关问题 更多 >