如何解决将数据框列中的列表应用到另一列
我有一个数据框,其中一列中有一个整数列表,另一列中有一个整数。我想创建一个新列,其中包含以单个整数开头的字符串列表,并将每个列出的整数与其组合。
示例:
data = [[1,[2,3,4],[12,13,14]],[22,23,24]]]
df = pd.DataFrame(data,columns = ['A','B','C'])
A B C
0 1 [2,4] [12,14]
1 2 [2,4] [22,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]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。