Python 将函数应用于返回一对多行的数据帧

Python 将函数应用于返回一对多行的数据帧,python,pandas,python-2.7,numpy,Python,Pandas,Python 2.7,Numpy,我有一个需要应用函数的数据帧。但是,该函数为数据帧中的一行返回许多项。我想用函数返回的值创建一个新的dataframe。因此,到目前为止,当我应用该函数时,新数据帧的行数与原始数据帧的行数相同,函数中的列表/序列为行。在新的dataframe中,我需要的是函数作为列返回的值(扁平列表)。另外,我想知道这是使用Pandas的一种好方法(就利用库的效率而言),还是只使用纯python更好 这就是我使用的: def get_children(id): children = [] suf

我有一个需要应用函数的数据帧。但是,该函数为数据帧中的一行返回许多项。我想用函数返回的值创建一个新的dataframe。因此,到目前为止,当我应用该函数时,新数据帧的行数与原始数据帧的行数相同,函数中的列表/序列为行。在新的dataframe中,我需要的是函数作为列返回的值(扁平列表)。另外,我想知道这是使用Pandas的一种好方法(就利用库的效率而言),还是只使用纯python更好

这就是我使用的:

def get_children(id):
    children = []
    suff = ['0', '1', '2', '3']
    for s in suff:
        children.append(id+s)

    return pd.Series(children)

df = pd.DataFrame()
df = all_attrbs['id'].apply(get_children)
输入:

所有属性:

id

0
1
2
3
t_id

00
01
02
03
11
12
13
14
20
21
22
23
30
31
32
33
预期产出:

df:

id

0
1
2
3
t_id

00
01
02
03
11
12
13
14
20
21
22
23
30
31
32
33

我不确定您的数据是什么样子的,但这里有一种有效的方法:

df = pd.DataFrame({'id' : [0,1,2,3,4,5,6]})

flattened_list = ["{}_{}".format(x, i) for i in range(4) for x in df['id']]

df2 = pd.DataFrame(flattened_list)

输出
扁平化列表

['0_0',
 '1_0',
 '2_0',
 '3_0',
 '4_0',
 '5_0',
 '6_0',
 '0_1',
 '1_1',
 '2_1',
 '3_1',
 '4_1',
 '5_1',
 '6_1',
 '0_2',
 '1_2',
 '2_2',
 '3_2',
 '4_2',
 '5_2',
 '6_2',
 '0_3',
 '1_3',
 '2_3',
 '3_3',
 '4_3',
 '5_3',
 '6_3']

什么是所有属性?谢谢,但我需要的是在输出df中平铺列表。对问题进行了编辑。好的,我编辑了我的答案@c00der您可以不使用apply,而是通过使用一个双列表comprensionah来实现,因此,这是一个纯python实现。我想知道是否有一种熊猫特有的方法可以做到这一点。