<h3>多行赋值,<code>.loc</code>和<code>DataFrame</code>维度匹配</h3>
<p>这里是一个完整的解决方案,它使用了零索引的<code>.loc</code>,并克服了维度/长度错误</p>
<blockquote>
<pre><code>error: 'cannot set using a list-like indexer with a different length than the value'
</code></pre>
</blockquote>
<p>若要匹配维度,请在分配给零索引而不是分配原始数组时,在所需形状中创建一个<code>DataFrame</code>。在</p>
<pre><code>import numpy as np
import pandas as pd
from cStringIO import StringIO
# Create example DataFrame
df_text = '''
078401115X| 0
0790747324| 0
0790750708|[(354, 1), (393, 1), (447, 1), (642, 1), (886,1)]
0800103688| 0
5556167281|[(41, 1), (86, 1), (341, 1), (362, 1), (419, 10)]
6300157423| 0
6300266850| 0
6301699599| 0
6301723465| 0
'''
df = pd.read_table(StringIO(df_text), sep='|', index_col=0, header=None, skipinitialspace=True)
print 'Original DataFrame:'
print df
print
# Find indexes with zero data in first column
zero_indexes = df[df[1] == '0'].index
print 'Zero Indexes:'
print zero_indexes.tolist()
print
# Assign numpy zero array to indexes
df.loc[zero_indexes] = pd.DataFrame([[np.zeros(4)]], index=zero_indexes, columns=[1])
print 'New DataFrame:'
print df
</code></pre>
<hr/>
^{pr2}$