【问题标题】: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)),并且我尝试了许多其他方法,有人知道如何解决这个问题吗?

【问题讨论】:

    标签: python pandas dataframe append concatenation


    【解决方案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 与原来的不一样

    【讨论】:

    • 非常感谢,这非常需要!
    猜你喜欢
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 2019-02-28
    • 2019-10-28
    • 2017-05-18
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多