数据框架str.replace中的列表不工作- Python



我试图替换一个非结构化列表中的字符串,我移动到一个Pandas数据框中的一列:

my_list = [
['1001100', 'xxx', '', '1100', 'PAR_200', '21651947694', '0', '0', '20210301', '20210331', '1630,51', '1', '']
['1001110', 'sss', '', '1110', 'C-200', '20210307', '1630,51', '1', '7252048000136', '']
['1001115', 'ddd', '', '1115', '21', '', 'NO6520058050362', '0', '08', '110433', '1630,51', '1', '', '']
['1001120', 'fff', '', '1120', 'MG', '', '', '73895137480', '']
['101100', 'ees', '', '1100', 'PAR_200', '21653346587', '0', '0', '20210301', '20210331', '1013,84', '1', '']
['101110', 'fsc', '', '1110', 'C-200', '20210307', '1013,84', '1', '7252048000136', '']
['101115', 'fer', '', '1115', '1', '', 'LI1600081181694N2K346', '0', '06', '110433', '1013,84', '1', '', '']
['101120', 'ter', '', '1120', 'MG', '', '', '17651232321', '']
]
df1 = pd.DataFrame({'test_set': my_list})

我想将分隔符更改为管道'|',然后写入文本文件。

但是替换函数不起作用。我做错了什么?

df1 = df1.replace(to_replace =['[', ', '],
value ='|')
df1["test_set"] = df1["test_set"].replace('[', '|')
df1 = df1.test_set.replace([','], ['|'], regex=True)
df1['test_set'] = df1['test_set'].str.replace('[','|')

您可以尝试使用explode,然后删除"和join返回

df1['test_set'] = df1.test_set.explode().loc[lambda x : x!=''].groupby(level=0).agg('|'.join)
0    1001100|xxx|1100|PAR_200|21651947694|0|0|20210...
1    1001110|sss|1110|C-200|20210307|1630,51|1|7252...
2    1001115|ddd|1115|21|NO6520058050362|0|08|11043...
3                      1001120|fff|1120|MG|73895137480
4    101100|ees|1100|PAR_200|21653346587|0|0|202103...
5    101110|fsc|1110|C-200|20210307|1013,84|1|72520...
6    101115|fer|1115|1|LI1600081181694N2K346|0|06|1...
7                       101120|ter|1120|MG|17651232321
Name: test_set, dtype: object