<p>您可以使用<code>pandas.Series</code>中的<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html" rel="nofollow noreferrer">^{<cd1>}</a>函数将日期与所需的数据进行匹配。这将为没有匹配值的单元格插入<code>NaN</code>,这将使以后更容易处理丢失的数据。如果仍然要填充零,可以使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.fillna.html" rel="nofollow noreferrer">^{<cd4>}</a></p>
<pre><code># Create a dataframe using date
df = pd.DataFrame({'date': date_list})
# To avoid the code getting messy in the next steps
stuff = {'ebit': ebit_list, 'totalassets': totalassets_list, 'cash': cash_list, 'totalCurrentAssets': totalCurrentAssets_list, 'totalCurrentLiabilities': totalCurrentLiabilities_list}
for name, values in stuff.items():
value_dict = {t[0]: t[1] for t in values} # t is each tuple in the list
df[name] = df['date'].map(value_dict) # map will match the correct date to the value
# assuming you need the dataframe to be sorted by date
df['date'] = pd.to_datetime(df['date']) # we should use actual numbers instead of date string
df.sort_values('date', inplace=True, ignore_index=True)
# if you want to fill 0s to missing values
# df.fillna(0, inplace=True)
</code></pre>
<p><code>ignore_index</code>中的<code>sort_values</code>参数用于确保排序后索引不会混乱。如果<code>pandas</code>版本是旧版本,则排序时可能会给出<code>TypeError: sort_values() got an unexpected keyword argument 'ignore_index'</code>。如果是这样的话,您应该使用以下方法来重置索引</p>
<pre><code>df.sort_values('date', inplace=True)
df.reset_index(inplace=True)
</code></pre>
<p>最后是df</p>
<pre><code> date ebit totalassets cash totalCurrentAssets totalCurrentLiabilities
0 2000-03-31 NaN 7.007000e+09 NaN NaN 1.853000e+09
1 2000-06-30 NaN 6.932000e+09 NaN NaN 1.873000e+09
2 2000-09-30 NaN 6.803000e+09 NaN NaN 1.933000e+09
3 2000-12-31 0.000000e+00 5.986000e+09 NaN NaN 1.637000e+09
4 2001-03-31 0.000000e+00 6.130000e+09 NaN NaN 1.795000e+09
.. ... ... ... ... ... ...
75 2018-12-29 2.334600e+10 3.737190e+11 4.477100e+10 1.408280e+11 1.082830e+11
76 2019-03-30 1.341500e+10 3.419980e+11 3.798800e+10 1.233460e+11 9.377200e+10
77 2019-06-29 1.154400e+10 3.222390e+11 5.053000e+10 1.349730e+11 8.970400e+10
78 2019-09-28 1.562500e+10 3.385160e+11 4.884400e+10 1.628190e+11 1.057180e+11
79 2019-12-28 2.556900e+10 3.406180e+11 3.977100e+10 1.632310e+11 1.021610e+11
</code></pre>