微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决将数据框列中的列表应用到另一列

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

示例:

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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?