数据框列以指示列表中的元素

马克·K:

原始数据如下:

all_names = ['Darren','John','Kate','Mike','Nancy']
list_0 = ['John', 'Mike']
list_1 = ['Kate', 'Nancy']

我要实现的是一个带有列的数据框,该列指示列表中出现了哪些名称(1表示肯定,0表示否定),例如:

在此处输入图片说明

我尝试了一种方法,即循环列表并通过为缺失的列表添加0来创建新列表,否则为1。

它笨拙且麻烦,特别是当列表数量增加时。

new_list_0 = []
for _ in all_names:
    if _ not in list_0:
        new_list_0.append(0)
    else:
        new_list_0.append(1)

new_list_1 = []
for _ in all_names:
    if _ not in list_1:
        new_list_1.append(0)
    else:
        new_list_1.append(1)

import pandas as pd

data = [all_names, new_list_0,new_list_1]
column_names = data.pop(0)
df = pd.DataFrame(data, columns=column_names)

输出:

   Darren  John  Kate  Mike  Nancy
0       0     1     0     1      0
1       0     0     1     0      1

什么是聪明的方法?谢谢。

BEN_YO:

让我们试着str.get_dummiesreindex

df=pd.Series([list_0,list_1]).str.join(',').str.get_dummies(',').reindex(columns=all_names,fill_value=0)
Out[160]: 
   Darren  John  Kate  Mike  Nancy
0       0     1     0     1      0
1       0     0     1     0      1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在列表中的数据框列中查找相同的元素

在列表中的数据框列中查找相同的元素

不同数据框列中的zip列表元素

如果python数据框中的列中存在列表元素,是否提取列表元素?

Python,Pandas匹配数据框并指示列表中的发现

如何从熊猫数据框中的列表元素的列中创建带有列表的列?

循环浏览pandas数据框列中的列表元素,以在新列中返回列表

将列表中的每个元素与数据框 python 中的一列列表进行比较

替换熊猫数据框中的列表元素

Pandas 访问数据框中的列表元素?

访问列表中数据框的元素?

在数据框列表中查找元素

从熊猫数据框中基于另一列的列的每个列表中删除元素

熊猫-数据框具有带有列表的列。如何对列表中的元素进行分组?

Pandas:在列表的数据框列中索引每个列表的第一个元素

计算熊猫数据框中列中每个值的列表中每个元素的性能

根据列中的值从熊猫数据框中的列表中删除元素

熊猫数据框中两列中列表中的元素计数

将所有列表元素从数据框列提取到单个列中的功能

在另一列的列表中查找pandas数据框列的最接近元素

计算新列中单元格级别数据框列表中的连续元素

检查元素是否在列表中,如果条件满足,则写入 Pandas 数据框中的新列

将向量的每个元素作为列放在列表中包含的每个数据框中

在列表Pt的数据框列中的每个元素上运行一个函数。2

在列表的数据框列中的每个元素上运行一个函数

如何根据有序列表替换pandas数据框列中的元素?

将列表中的元素分配给数据框的不同列

熊猫-拆分数据框中列的每个元素并添加到列表

如何在R的数据框中计算列表列的每一列中的元素