<p>首先,您可以使用<code>.str.findall()</code>查找每个括号中的所有值,并将它们作为列表返回</p>
<p>然后您可以使用<code>.str.split()</code>中的<code>|</code>语法在多个分隔符上拆分</p>
<p>最后使用<code>drop</code>删除<code>message</code>列</p>
<pre class="lang-py prettyprint-override"><code>df_ = df.assign(message=df['message'].str.findall(r'{(.*?)}')).explode('message')
df_[['valuea', 'valueb', 'valuec', 'valued']] = df_['message'].str[:-1].str.split('\||/',expand=True)
df_ = df_.drop(['message'], axis=1)
</code></pre>
<pre><code>print(df_)
timestamp event resultid docid valuea valueb valuec valued
0 12/05/2021 search 86CE8D1E1D8B49B09B646F173E9E7A1A pdf01 valuea1 valueb1 valuec1 valued1
1 11/05/2021 search 1672D80B8619420997B4F2DC81872F67 pdf02 valuea2 valueb2 valuec2 valued2
2 10/05/2021 search 7E353C85FC984B33861801676121133B pdf03 valuea3 valueb3 valuec3 valued3
2 10/05/2021 search 7E353C85FC984B33861801676121133B pdf03 valuea4 valueb4 valuec4 valued4
</code></pre>
<p>要导出为csv,可以使用</p>
<pre class="lang-py prettyprint-override"><code>df_.to_csv('your.csv', index=False)
</code></pre>