为了账号安全,请及时绑定邮箱和手机立即绑定

比较两个数据帧列并分配零和一

比较两个数据帧列并分配零和一

狐的传说 2023-10-18 20:57:53
我有一个数据框和一个列表,其中包括数据框中的部分列名称,如下所示: my_frame:           col1, col2, col3, ..., coln              2,    3,    4, ..., 2              5,    8,    5, ..., 1              6,    1,    8, ..., 9 my_list:             ['col1','col3','coln']现在,我想创建一个与原始数据帧(总列数)大小相同的数组,其中仅包含零和一。基本上,如果“my_list”中有类似的列名称,我希望数组包含 1,否则包含 0。我想要的输出应该是这样的:  my_array={[1,0,1,0,0,...,1]} 
查看完整描述

1 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

这应该可以帮助你:


import pandas as pd


dictt = {'a':[1,2,3],

         'b':[4,5,6],

         'c':[7,8,9]}


df = pd.DataFrame(dictt)


my_list = ['a','h','g','c']


my_array = []


for column in df.columns:

    if column in my_list:

        my_array.append(1)

    else:

        my_array.append(0)

print(my_array)

输出:


[1, 0, 1]

如果你想使用my_arrayanumpy array而不是 a list,那么使用这个:


import pandas as pd

import numpy as np


dictt = {'a':[1,2,3],

         'b':[4,5,6],

         'c':[7,8,9]}


df = pd.DataFrame(dictt)


my_list = ['a','h','g','c']


my_array = np.empty(0,dtype = int)


for column in df.columns:

    if column in my_list:

        my_array = np.append(my_array,1)

    else:

        my_array = np.append(my_array,0)

print(my_array)

输出:


[1 0 1]

为了更容易理解,我在代码中使用了测试数据。您可以用您的实际数据替换测试数据(即用您的实际数据帧替换我的测试数据帧)。希望这有帮助!


查看完整回答
反对 回复 2023-10-18
  • 1 回答
  • 0 关注
  • 89 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信