python - 如何在具有多个条件的多列 col0、col1、col2 上使用替换方法
问题描述
如何在多列 col0,col1,col2 上使用替换方法
new_df['col0'].str.replace(']]', ']')
解决方案
new_df = pd.DataFrame({'col0':[']]','aa]]'],
'col1':[']]','[s]'],
'col2':['[[]]]]',']'],
'col3':[']]', '[[]]]']})
print (new_df)
col0 col1 col2 col3
0 ]] ]] [[]]]] ]]
1 aa]] [s] ] [[]]]
cols = ['col0','col1','col2']
new_df[cols] = new_df[cols].replace(']]', ']')
print (new_df)
col0 col1 col2 col3
0 ] ] [[]]]] ]]
1 aa]] [s] ] [[]]]
如果要替换子字符串,请添加regex=True
转义,\
因为[
是特殊regex
字符:
cols = ['col0','col1','col2']
new_df[cols] = new_df[cols].replace('\]\]', ']', regex=True)
print (new_df)
col0 col1 col2 col3
0 ] ] [[]] ]]
1 aa] [s] ] [[]]]
编辑:如果可能,将值转换为列表:
import ast
test=pd.DataFrame({'gender':['M']*4,'B':[[['Office/Work'],['31-35'], ['Salaried']],[['Movies,Restaurants'],['21-25'], ['Salaried']],[[ 'College/Park'],['21-25'],['Student']],[['College'], ['21-25'], ['Student']]]})
test = test.astype(str)
print (test)
gender B
0 M [['Office/Work'], ['31-35'], ['Salaried']]
1 M [['Movies,Restaurants'], ['21-25'], ['Salaried']]
2 M [['College/Park'], ['21-25'], ['Student']]
3 M [['College'], ['21-25'], ['Student']]
df = pd.DataFrame([[y[0] for y in ast.literal_eval(x)] for x in test['B']],
columns=['a','b','c'])
print (df)
a b c
0 Office/Work 31-35 Salaried
1 Movies,Restaurants 21-25 Salaried
2 College/Park 21-25 Student
3 College 21-25 Student
解决方案replace
:
df = test['B'].replace(['\[\[','\]\]', '\], \['], ['', '', ';'], regex=True).str.split(';', expand=True)
print (df)
0 1 2
0 'Office/Work' '31-35' 'Salaried'
1 'Movies,Restaurants' '21-25' 'Salaried'
2 'College/Park' '21-25' 'Student'
3 'College' '21-25' 'Student'
推荐阅读
- r - 为什么我的 R 代码没有通过第一次迭代
- python - 如何使用 python 连接到已经在 selenium 中打开的浏览器?
- mongodb - Model.find() 返回一个对象或对象数组?[蒙哥达]
- flutter - 带导航的 Flutter Provider
- c++ - 如何找到包含 QtVirtualKeyboard 的窗口
- r - 为什么 R PerformanceAnalytics 中的 TrackingError 函数与使用其发布的公式的手动计算不一致
- mysql - MySQL“IN”操作符在使用左连接和分组的大量值上运行缓慢
- java - 如何使用 REST Assured 将 Pact 测试的动态 id 从提供者注入到消费者
- java - 插入新实体:Spring Data JPA vs. Hibernate 的 EntityManager
- python - 围绕外部数据构建对象模型