将数据框列中的列表应用于另一列

Applying a list in a dataframe column to another column

我有一个数据框,其中一列是整数列表,另一列是一个整数。我想创建一个新列,其中包含以单个整数开头的字符串列表,并将每个列出的整数与其组合。

示例:

data = [[1, [2,3,4], [12,13,14]], [2, [2,3,4], [22,23,24]]]
df = pd.DataFrame(data, columns = ['A', 'B', 'C']) 
    
   A          B             C
0  1  [2, 3, 4]  [12, 13, 14]
1  2  [2, 3, 4]  [22, 23, 24]

C 列是我想使用 A 和 B 中的信息创建的示例。 这是我创建的用于尝试此操作的函数:

def comb (lst, tid):
    nrng = []
    lsts = [str(s) for s in lst]
    tid = str(tid)
    for itm in lsts:
        lyr = tid + itm
        nrng.append(lyr)
    return nrng
comb(df['B'][0], df['A'][0])

如果我指定了行,那是可行的,但我想将它应用到数据框。我尝试了一些类似的结果。当我只需要 B 列时,它会遍历 A 列。

df['D'] = df.apply(comb, tid = df['A'], axis = 0)
df['D'] = comb(df['B'], df['A'])
df['D'] = [comb(s) for s in df['A']]

我只想通过应用函数(或任何其他更合适的技术)创建一个看起来像 C 列的 D 列

我认为您可以在没有新函数的情况下连接它们。

df['C'] = [[str(a)+str(i) for i in b] for a, b in zip(df.A, df.B)]

更新:务必先转换为 str()。

你可以试试apply

df['C'] = df[['A', 'B']].apply(lambda x: [f'{x[0]}{i}' for i in x[1]], axis=1)

print(df['C'])
0    [12, 13, 14]
1    [22, 23, 24]