<p>只要你的函数总是有相同的参数,这应该是可行的</p>
<p>您可以使用以下选项阅读csv(如果分隔符是2个或更多空格,这是我粘贴问题示例时得到的):</p>
<pre><code>df = pd.read_csv('test.csv',sep='[\s]{2,}', index_col=False, engine='python')
</code></pre>
<p>如果您的数据帧为<code>df</code>:</p>
<pre><code># break out both sides of the equal sign in function into columns
A_vals = df['A'].str.extractall(r'([\w\d]+)=([^,\)]*)')
# get rid of the multi-index and put the values after '=' into columns
A_converted = A_vals.unstack(level=-1)[1]
# set column names to values before '='
A_converted.columns = list(A_vals.unstack(level=-1)[0].values[0])
# same thing for 'D'
D_vals = df['D'].str.extractall(r'([\w\d]+)=([^,\)]*)')
D_converted = D_vals.unstack(level=-1)[1]
D_converted.columns = list(D_vals.unstack(level=-1)[0].values[0])
# join everything together
df = A_converted.join(df.drop(['A','D'], axis=1)).join(D_converted)
</code></pre>
<p>关于regex{<cd2>}的一些说明有两个捕获组(每个部分在parens中):</p>
<p>组1<code>([\w\d]+)</code>是一个或多个字符(<code>+</code>),它们是单词字符<code>\w</code>或数字<code>\d</code></p>
<p>组间的<code>=</code></p>
<p>第2组<code>([^,\)]*)</code>是0个或多个字符(<code>*</code>),它们不是(<code>^</code>)逗号<code>,</code>或括号<code>\)</code></p>