首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将嵌套列表作为新列添加到现有pandas数据框中

如何将嵌套列表作为新列添加到现有pandas数据框中
EN

Stack Overflow用户
提问于 2019-02-07 06:46:36
回答 1查看 666关注 0票数 3

我已经创建了一个数据帧"df“,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   Name
0. School
1. Organisation 
2. Teacher 
3. Guest

现在我有三个列表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. A = ['','','',['12','4']]
2. B = ['','','',['3','8']]
3. status = ['','','','[['yes','no','yes'],['no','yes','no']]]
4. letter = ['', '', '', [[['K', 'L'], ['L'], ['L']], [['O'], ['P', 'O'], ['K']]]]

我想要将这4个列表添加到我现有的dataframe df中,它应该如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  Name            A1    A2   status  letter
0. School                 
1. Organisation          
2. Teacher       
3. Guest          12     3   yes     K
3. Guest          12     3   yes     L
3. Guest          12     3   no      L
3. Guest          12     3   yes     L
3. Guest           4     8   no      O
3. Guest           4     8   yes     P
3. Guest           4     8   yes     O
3. Guest           4     8   no      K

我已经尝试过df['from']=fromdf['to']=to,但这并没有给出我所期望的表。

我也尝试过这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dfa=pd.DataFrame({"Names":names})

def flat(nums):
    res = []
    index = []
    for i in range(len(nums)):
        if isinstance(nums[i], list):
            res.extend(nums[i])
            index.extend([i]*len(nums[i]))
        else:
            res.append(nums[i])
            index.append(i)
    return res,index

    x="A1"
    list_flat,list_index=flat(eval(x))
    dataframe = pd.DataFrame({x:list_flat},index=list_index)
    df = pd.concat([df['Names'],dataframe],axis=1,sort=False)

    x="A2"
    list_flat,list_index=flat(eval(x))
    dataframe = pd.DataFrame({x:list_flat},index=list_index)
    df= pd.concat([df,dataframe],axis=1,sort=False)

    x="status"
    list_flat,list_index=flat(eval(x))
    dataframe = pd.DataFrame({x:list_flat},index=list_index)
    df = pd.concat([df,dataframe],axis=1,sort=False)

    x="letter"
    list_flat,list_index=flat(eval(x))
    dataframe = pd.DataFrame({x:list_flat},index=list_index)
    df = pd.concat([df,dataframe],axis=1,sort=False)

但是嵌套列表不是出现在不同的行上,而是出现在同一行上,如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Name              A1    A2    status                 letter
0. School                 
1. Organisation          
2. Teacher       
3. Guest          12     3   ['yes','no','yes']     [['K','L'],['L'],['L']]
3. Guest           4     8   ['no','yes','no']      [['O'],['P','O'],['K']]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-07 09:21:06

您可以尝试以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
name = ['School', 'Organization', 'Teacher', 'Guest']
A = ['','','',['12','4']]
B = ['','','',['3','8']]
status = ['','','',[['yes','no','yes'],['no','yes','no']]]
letter = [['', '', '', [[['K', 'L'], ['L'], ['L']], [['O'], ['P', 'O'], ['K']]]]]

final_list = []
for a, b, c, d, e in zip(name, A, B, status, letter[0]):
    if any([b, c, d, e]):
        for b1, c1, d1, e1 in zip(b, c, d, e):
            for d2, e2 in zip(d1, e1):
                for e3 in e2:
                    final_list.append([a, b1, c1, d2, e3])
    else:
        final_list.append([a, b, c, d, e])

df = pd.DataFrame(final_list, columns=['Name', 'A1', 'A2', 'status', 'letter'])

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            Name  A1 A2 status letter
0         School                     
1   Organization                     
2        Teacher                     
3          Guest  12  3    yes      K
4          Guest  12  3    yes      L
5          Guest  12  3     no      L
6          Guest  12  3    yes      L
7          Guest   4  8     no      O
8          Guest   4  8    yes      P
9          Guest   4  8    yes      O
10         Guest   4  8     no      K
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54567734

复制
相关文章
Python - 如何将 list 列表作为数据结构使用
使用 collections.deque ,它被设计成可以快速从两端添加或弹出元素
小菠萝测试笔记
2021/07/29
2.2K0
Python - 如何将 list 列表作为数据结构使用
pandas中数据框的reshape操作
数据框的长宽转换对于熟悉R语言的朋友而言,应该不会陌生。使用ggplot2画图时,最常用的数据处理就是长宽转换了。在pandas中,也提供了数据框的长宽转换功能,有以下几种实现方式
生信修炼手册
2020/07/02
4.6K0
Pandas中求某一列中每个列表的平均值
前几天在Python最强王者交流群【冫马讠成】问了一道Pandas处理的问题,如下图所示。
前端皮皮
2022/08/17
4.9K0
Pandas中求某一列中每个列表的平均值
如何将文章列表用<li>分两列显示
  我们平时用ul或ol标签来罗列文章列表时默认是一列,为了美观起见,想把它们两列显示要如何操作呢?怎么用css定义它们?   其实相对比较简单,用几行css样式定义一下就够了,可以用div + css来控制 <style type="text/css"> .ytkah{ width:300px; height:74px; float:left;} .ytkah ul{ width:280px;} .ytkah li{ width:100px; float:left; display:block;} </s
ytkah
2018/03/06
1.9K0
Pandas | 如何新增数据列?
在数据分析时,原始数据往往不能满足我们的需求,经常需要按照一定条件创建新的数据列或者修改原有数据列,然后进行后续分析。
生信real
2022/12/20
2.1K0
将pandas数据显示到现有的flask html表中
2 pandas读写数据库 在python连接好数据库后,pandas可以利用read_sql()方法将数据读入DataFrame。这里可以看一下代码。
赵云龙龙
2020/12/15
4.3K0
将pandas数据显示到现有的flask html表中
pandas基础:重命名pandas数据框架列
重命名pandas数据框架列有很多原因。例如,可能希望列名更具描述性,或者可能希望缩短名称。本文将介绍如何更改数据框架中的名称。
fanjy
2022/11/16
1.9K0
pandas基础:重命名pandas数据框架列
pandas’_pandas 删除列
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/02
2.7K0
pandas’_pandas 删除列
pandas操作一列数据
def tt(x): if x.name == "distribution": return [el[0:10] for el in x.values] else: return x test1 = test.apply(tt)
用户1733462
2018/12/05
1.9K0
Pandas基础:在Pandas数据框架中移动列
有时候,我们需要在pandas数据框架内移动一列,shift()方法提供了一种方便的方法来实现。
fanjy
2022/06/04
3.2K0
Pandas基础:在Pandas数据框架中移动列
MySql中应该如何将多行数据转为多列数据
在 MySQL 中,将多行数据转为多列数据一般可以通过使用 PIVOT(也称为旋转表格)操作来实现。但是,MySQL 并没有提供原生的 PIVOT 操作。不过,可以使用 MySQL 的 GROUP BY 和 CASE WHEN 语句来自定义实现。
用户1289394
2023/08/22
1.9K0
MySql中应该如何将多行数据转为多列数据
seaborn可视化数据框中的多个列元素
seaborn提供了一个快速展示数据库中列元素分布和相互关系的函数,即pairplot函数,该函数会自动选取数据框中值为数字的列元素,通过方阵的形式展现其分布和关系,其中对角线用于展示各个列元素的分布情况,剩余的空间则展示每两个列元素之间的关系,基本用法如下
生信修炼手册
2020/10/19
5.3K0
在 Debian 中如何将用户添加到 Sudoers
sudo是一个命令行工具,它允许被信任用户以另外一个用户身份运行命令,默认是 root 用户。
雪梦科技
2020/05/11
12.6K0
在 Debian 中如何将用户添加到 Sudoers
对比Excel,Python pandas删除数据框架中的列
删除列也是Excel中的常用操作之一,可以通过功能区或者快捷菜单中的命令或者快捷键来实现。上一篇文章,我们讲解了Python pandas删除数据框架中行的一些方法,删除列与之类似。然而,这里想介绍一些新方法。取决于实际情况,正确地使用一种方法可能比另一种更好。
fanjy
2022/04/13
7.2K0
对比Excel,Python pandas删除数据框架中的列
在Pandas中更改列的数据类型【方法总结】
有什么方法可以将列转换为适当的类型?例如,上面的例子,如何将列2和3转为浮点数?有没有办法将数据转换为DataFrame格式时指定类型?或者是创建DataFrame,然后通过某种方法更改每列的类型?理想情况下,希望以动态的方式做到这一点,因为可以有数百个列,明确指定哪些列是哪种类型太麻烦。可以假定每列都包含相同类型的值。
kirin
2021/04/19
20.4K0
在Pandas中更改列的数据类型【方法总结】
在 Ubuntu 中如何将用户添加到 Sudoers
sudo是一个命令行程序,它允许被信任的用户以 root 或者其他用户身份去运行命令。
雪梦科技
2020/05/09
34.4K0
在 Ubuntu 中如何将用户添加到 Sudoers
数据框、矩阵和列表20230202
2、read.csv(" ") ⚠️文件在当前的工作路径中可以直接使用文件名,否则需要使用绝对路径,否则就会报错。
顾卿岚
2023/02/03
1.4K0
bootstrap笔记(六)——列偏移与嵌套列
嵌套列 为了使用内置的栅格系统将内容再次嵌套,可以通过添加一个新的 .row 元素和一系列 .col-sm-* 元素到已经存在的 .col-sm-* 元素内。被嵌套的行(row)所包含的列(column)的个数不能超过12(其实,没有要求你必须占满12列)。
兮动人
2021/06/11
9950
bootstrap笔记(六)——列偏移与嵌套列
点击加载更多

相似问题

如何将列表列表作为列添加到现有数据框中

18

Cumsum作为现有Pandas数据中的新列

211

如何将值列表作为新列添加到现有的Dataframe中?

12

使用现有列和字典作为Pandas新列

31

将pandas序列值添加到pandas数据框末尾的新数据框列中

41
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文