熊猫帮助:将列从扩展字符串转换为列数组

时间:2018-11-05 15:09:02

标签: python pandas

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

海滩度假;足够的空间;游泳池

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

或者可以创建一个来自原始字符串的新列。

谢谢!

3 个答案:

答案 0 :(得分:1)

推荐的解决方案,特别是如果每​​个字符串中有相同数量的;分隔符时,建议创建一个object dtype系列的数据框,每个元素都包含一个字符串:

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

建议不要创建一系列列表,而不是;它涉及一个嵌套指针层。

答案 1 :(得分:0)

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

list(df.columns.values)

df[col_name].tolist()

另外,请检查此答案here

答案 2 :(得分:0)

您可以选中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]