从lis向不同长度的dataframe添加新列

2024-10-01 07:16:05 发布

您现在位置:Python中文网/ 问答频道 /正文

每次运行函数时,我都试图在数据帧中添加一个新列。这将导致错误:“ValueError:值的长度与索引的长度不匹配”。我假设这是因为我作为一个新列添加到df中的列表的长度随着函数的每次运行而变化。在

我已经看到很多线程建议使用concad,但这可能对我不起作用,因为我似乎不能使用concad而只是覆盖我现有的df-我需要一个完整的df,每次运行函数时都要有一个列。在

我的代码功能如下:

df = DataFrame()
mylist = []

def myfunc(number):
    mylist = []
    for x in range(0,10):
        if 'some condition':
            mylist.append(x)
    df['results%d' % number] = mylist

因此,对于每个函数迭代,我都会添加“mylist”的内容作为一个新的dataframe列。在第二次迭代中,这将导致上述错误。我需要一些方法让python忽略索引/列长度。从建议使用concad的线程中,我得到了这样一种传递,即赋予指令'axis=1'可以修复不同长度的问题,因此解决方案可能与此并行。在

另外,我可以在函数定义之前或开始时创建一系列列表—每个传递给函数的“number”参数对应一个列表,但这是一个非常原始的解决方案


Tags: 数据函数代码功能numberdataframedf列表
1条回答
网友
1楼 · 发布于 2024-10-01 07:16:05

我不太清楚你想做什么,但也许你想要这样的东西?在

df = DataFrame()

def myfunc(number):
    row_index = 0
    for x in range(0,10):
        if 'some condition':
            df.loc[row_index, 'results%d' % number] = x
            row_index += 1

相关问题 更多 >