回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正试图从一个数据帧展平一个列表。我现有的数据帧如下所示:</p>
<pre class="lang-none prettyprint-override"><code>CreationDate
2013-12-22 15:25:02 <ubuntu><mac-osx><syslinux>
2009-12-14 14:29:32 <ubuntu><mod-rewrite><laconica><apache-2.2>
2013-12-22 15:42:00 <ubuntu><nat><squid><mikrotik>
Name: Tags, dtype: object
</code></pre>
<p>然后,我清理<code>Tags</code>列中的标记字符串:</p>
^{pr2}$
<p>结果是:</p>
<pre class="lang-none prettyprint-override"><code>CreationDate
2013-12-22 15:25:02 [ubuntu, mac-osx, syslinux] 3
2009-12-14 14:29:32 [ubuntu, mod-rewrite, laconica, apache-2.2] 4
2013-12-22 15:42:00 [ubuntu, nat, squid, mikrotik] 4
</code></pre>
<p>现在,我为每个标记创建新列:</p>
<pre><code>tag_df = pd.DataFrame(index=df.index, data=df["Tags"])
max_cols = tag_df["Tags"].map(len).max()
for col in range(max_cols):
tag_df[col] = pd.Series(index=tag_df.index)
</code></pre>
<p>这给了我这样一个结论:</p>
<pre class="lang-none prettyprint-override"><code>CreationDate
2013-12-22 15:25:02 [ubuntu, mac-osx, syslinux] NaN NaN NaN NaN NaN
2009-12-14 14:29:32 [ubuntu, mod-rewrite, laconica, apache-2.2] NaN NaN NaN NaN NaN
2013-12-22 15:42:00 [ubuntu, nat, squid, mikrotik] NaN NaN NaN NaN NaN
</code></pre>
<p>对于<code>Tags</code>列中的每个标记,我想在其相应的“index”列中插入标记。所以,最终结果应该是这样的:</p>
<pre class="lang-none prettyprint-override"><code>CreationDate
2013-12-22 15:25:02 [ubuntu, mac-osx, syslinux] ubuntu mac-osx syslinux NaN NaN
2009-12-14 14:29:32 [ubuntu, mod-rewrite, laconica, apache-2.2] ubuntu mod-rewrite laconica apache-2.2 NaN
2013-12-22 15:42:00 [ubuntu, nat, squid, mikrotik] ubuntu nat squid mikrotik NaN
</code></pre>
<p>我尝试过<code>pd.DataFrame.insert()</code>和各种形式的创建新数据帧并将它们合并在一起,我似乎找不到合适的组合。如何将<code>Tags</code>列中的每个对象展平到它在同一行上的相应列?在</p>