为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

四季花海 2023-08-22 17:12:26
我有这个数据框列表,其中一些是空的。我不想丢弃它们,因为当我连接它时它会改变我的行数。我想将它们转换为 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.000   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.000   NA                   NA           NA             NA0   NA                   NA           NA             NA0   NA                   NA           NA             NA0   60,900,000.00   1,300,000.00    0.00            0.00
查看完整描述

1 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

我建议使用列表理解方法,使用模板数据框更新空数据框:


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)


           0        1        2     3

0  102000000  2000000  1400000     0

0       <NA>     <NA>     <NA>  <NA>

0       <NA>     <NA>     <NA>  <NA>

0       <NA>     <NA>     <NA>  <NA>

0  102000000  2000000  1400000     0


查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信