猿问

包含空数据帧的数据帧的串联列表

我有这个数据框列表,其中一些是空的。我不想丢弃它们,因为当我连接它时它会改变我的行数。我想将它们转换为 NA 值,以便这 5 个数据帧转换为 5 行。


数据框列表:


[                 0              1              2      3

 0  102,000,000.00    2,000,000.00  1,400,000.00   0.00 , Empty DataFrame

 Columns: []

 Index: [], Empty DataFrame

 Columns: []

 Index: [], Empty DataFrame

 Columns: []

 Index: [],                 0              1      2      3

 0  60,900,000.00    1,300,000.00  0.00   0.00 ]

代码:


data = pd.concat(dataframes)

data = pd.DataFrame(data)

输出:


0   102,000,000.00  2,000,000.00    1,400,000.00    0.00

0   60,900,000.00   1,300,000.00    0.00            0.00

期望的输出:


0   102,000,000.00  2,000,000.00    1,400,000.00    0.00

0   NA                   NA           NA             NA

0   NA                   NA           NA             NA

0   NA                   NA           NA             NA

0   60,900,000.00   1,300,000.00    0.00            0.00


四季花海
浏览 141回答 1
1回答

呼如林

我建议使用列表理解方法,使用模板数据框更新空数据框:template = pd.DataFrame(data = [[pd.NA, pd.NA, pd.NA, pd.NA]], columns = [0,1,2,3])dataframes= [i if not i.empty else template for i in dataframes]这将i.empty == True使用 中定义的数据帧更新数据帧template。一个工作示例:df1 = pd.DataFrame(data = [[102000000,2000000,1400000,0]], columns = [0,1,2,3])df2 = pd.DataFrame()df3 = pd.DataFrame()df4 = pd.DataFrame()df5 = pd.DataFrame(data = [[102000000,2000000,1400000,0]], columns = [0,1,2,3])dataframes = [df1, df2, df3,df4,df5]template = pd.DataFrame(data = [[pd.NA, pd.NA, pd.NA, pd.NA]], columns = [0,1,2,3])dataframes= [i if not i.empty else template for i in dataframes]pd.concat(dataframes)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0&nbsp; &nbsp; &nbsp; &nbsp; 1&nbsp; &nbsp; &nbsp; &nbsp; 2&nbsp; &nbsp; &nbsp;30&nbsp; 102000000&nbsp; 2000000&nbsp; 1400000&nbsp; &nbsp; &nbsp;00&nbsp; &nbsp; &nbsp; &nbsp;<NA>&nbsp; &nbsp; &nbsp;<NA>&nbsp; &nbsp; &nbsp;<NA>&nbsp; <NA>0&nbsp; &nbsp; &nbsp; &nbsp;<NA>&nbsp; &nbsp; &nbsp;<NA>&nbsp; &nbsp; &nbsp;<NA>&nbsp; <NA>0&nbsp; &nbsp; &nbsp; &nbsp;<NA>&nbsp; &nbsp; &nbsp;<NA>&nbsp; &nbsp; &nbsp;<NA>&nbsp; <NA>0&nbsp; 102000000&nbsp; 2000000&nbsp; 1400000&nbsp; &nbsp; &nbsp;0
随时随地看视频慕课网APP

相关分类

Python
我要回答