如何在python中使用pandas执行字符串替换操作?

时间:2015-09-23 12:05:42

标签: python string pandas dataframe

我有一个pandas数据框,其中Items列是一个列表。

cust_id   Items
100     ['item1','item2','item3']
101     ['item5','item8','item9']
102     ['item2','item4']

我想将上述数据帧转换为以下格式。

cust_id  Items
100     item1 item2 item3
101     item5 item8 item9
102     item2 item4

我尝试使用内置字符串替换函数的pandas将其返回原始列而不实际执行字符串替换操作。

df['Items']=(df['Items'].astype(str)).replace({"['":"", "', '":" ", "']":"" },method='string')

请告知

更新

我使用以下代码创建原始数据框。

df=df1.groupby(['cust_id'])['Items'].apply(list).reset_index()

1 个答案:

答案 0 :(得分:4)

如果元素确实是list,那么您可以在列表中使用str.join()以及series.apply方法。示例 -

In [159]: df = pd.DataFrame([[100,['item1','item2','item3']],[101,['item5','item8','item9']],[102,['item2','item4']]],columns=['cust_id','Items'])

In [160]: df
Out[160]:
   cust_id                  Items
0      100  [item1, item2, item3]
1      101  [item5, item8, item9]
2      102         [item2, item4]

In [161]: df['Items'] = df['Items'].apply(' '.join)

In [162]: df
Out[162]:
   cust_id                Items
0      100    item1 item2 item3
1      101    item5 item8 item9
2      102          item2 item4