我正在尝试操作大量字符串,因此无法手动执行此操作。我是python的新手,所以我很难搞清楚这一点。
我有一个包含列的数据框:
df = pd.read_csv('filename.csv')
df
A B
0 big_apples
1 big_oranges
2 small_pears
3 medium_grapes
我需要它看起来更像:
A B
0 apples(big)
1 oranges(big)
2 pears(small)
3 grapes(medium)
我正在考虑使用startswith()函数和.replace()/连接所有内容。但后来我必须为每个列创建列,我需要它来识别唯一的前缀。有更有效的方法吗?
答案 0 :(得分:3)
您可以进行一些字符串格式化并将其应用于系列:
df.B.apply(lambda x: '{}({})'.format(*x.split('_')[::-1]))
0 apples(big)
1 oranges(big)
2 pears(small)
3 grapes(medium)
此处apply
正在将格式应用于系列的每个项目。然后应用您想要的字符串格式(我使用[::-1]
来反转字符串的顺序)和*
到"解包"列表中的返回值