您好,我有数据帧,例如:
COL1 COL2 COL3
G1 1 [[(OK2_+__HELLO,OJ_+__BY),(LO_-__HOLLA,KUOJ_+__BY)]]
G1 2 [[(JU3_+__BO,UJ3_-__GET)]]
如何在COL3
列表中使用re.sub(r'.*__', '')
并在“__
之前获取一个没有任何内容的新列:
COL1 COL2 COL3 COL4
G1 1 [[(OK2_+__HELLO,OJ_+__BY),(LO_-__HOLLA,KUOJ_+__BY)]] [[(HELLO,OBY),(HOLLA,BY)]]
G1 2 [[(JU3_+__BO,UJ3_-__GET)]] [(BO,GET)]]
以下是数据:
data= {'COL1': {0: 'G1', 1: 'G1'}, 'COL2': {0: 1, 1: 2}, 'COL3 ': {0: "[[(OK2_+__HELLO,OJ_+__BY),(LO_-__HOLLA,KUOJ_+__BY)]]", 1: "[[(JU3_+__BO,UJ3_-__GET)]]"}}
df = pd.DataFrame.from_dict(data)
更新的数据解决方案
见regex demo
旧数据解决方案
您可以使用
ast.literal_eval
将COL3
列中的字符串转换为列表列表,并在修改元组项目时对其进行迭代:如果可以将结果保留为列表列表,则不需要使用
str(result)
相关问题 更多 >
编程相关推荐