将多个数据框的零附加到相同的大小

Posted

技术标签:

【中文标题】将多个数据框的零附加到相同的大小【英文标题】:Appending zeros for multiple Dataframes to be same size 【发布时间】:2021-12-30 22:10:11 【问题描述】:
rows_len=[]
row_list=[]


rows_list= list(patientdataset.copy().values())
for i in range(0,len(rows_list)):
    rows_len.append(len(rows_list[i]))   


max_length = max(rows_len)

for lista in rows_list:
    for i in range(max_length - len(lista)):
        lista = pd.DataFrame(lista, columns=['Level','IsCorrect','TotalSeconds'])
        zeros = [0.0,0.0,0.0]
        zerosseries = pd.Series(zeros, index = ['Level','IsCorrect','TotalSeconds'])
        lista = lista.append(zerosseries, ignore_index=True)

所以我有一个数据框列表,rows_list,所有数据框都有相同的 3 列,但行大小不同。

当我尝试附加一系列零值以使数据帧大小相同时,它不会附加 (lista = lista.append(zerosseries, ignore_index=True)),并且我尝试了许多其他方法,有人知道如何解决这个问题吗?

【问题讨论】:

【参考方案1】:

您的代码似乎很好,只是您没有在任何地方收集更改 -

out_list = []
for lista in row_list:
    for i in range(max_length - lista.index.size):
        print(lista.index.size)
        zeros = [0.0, 0.0, 0.0]
        zeros_series = pd.Series(zeros, index=lista.columns)
        lista = lista.append(zeros_series, ignore_index=True)
    out_list.append(lista)

由于您在外部for loop 中使用变量lista 进行循环,然后在内部循环中创建一个新的lista,因此修改后的lista 与原来的不一样

【讨论】:

非常感谢,这非常需要!

以上是关于将多个数据框的零附加到相同的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何将元素列表附加到数据框的单个特征中?

如何将数据框附加到另一个数据框的每一行? [复制]

为数据框的子集创建预测并附加到原始文件

如何根据用户及其要附加的文件添加多个附件?

如何更改数据框的名称

如何使用 Pandas 数据框的常用键填充多个字典?