<p>如果dicts不是真的需要,这里有一个多索引的方法。在这里,我假设单独的dict大部分都是不重叠的键,所以长数据帧似乎更合适(如果大多数dict都有重叠的键,那么宽数据帧可能更好)</p>
<pre><code>import pandas as pd
df = pd.concat([pd.DataFrame.from_dict(di, orient='index', columns=['N']) for di in d['objects']],
keys=range(len(d['objects'])))
# N
#0 Sand 10
#1 Seawater 2
# Crab 30
#2 Parasol 50
# Determine which original "rows" have at least one value < 40
s = df.N.lt(40).groupby(level=0).any()
df_add = pd.DataFrame({'N': 1000},
index = pd.MultiIndex.from_product([s[s].index, ['Small']]))
# Join them:
df = pd.concat([df, df_add]).sort_index()
# N
#0 Sand 10
# Small 1000
#1 Crab 30
# Seawater 2
# Small 1000
#2 Parasol 50
</code></pre>
<hr/>
<p>这是一个具有宽数据帧的版本。更容易操作,但可以变得非常大</p>
<pre><code>df = pd.DataFrame.from_records(d['objects'])
# Sand Seawater Crab Parasol
#0 10.0 NaN NaN NaN
#1 NaN 2.0 30.0 NaN
#2 NaN NaN NaN 50.0
df.loc[df.lt(40).any(1), 'Small'] = 1000
# Sand Seawater Crab Parasol Small
#0 10.0 NaN NaN NaN 1000.0
#1 NaN 2.0 30.0 NaN 1000.0
#2 NaN NaN NaN 50.0 NaN
</code></pre>