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

我有一个数据框和一个列表,其中包括数据框中的部分列名称,如下所示:


 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]} 


狐的传说
浏览 90回答 1
1回答

长风秋雁

这应该可以帮助你:import pandas as pddictt = {'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 pdimport numpy as npdictt = {'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]为了更容易理解,我在代码中使用了测试数据。您可以用您的实际数据替换测试数据(即用您的实际数据帧替换我的测试数据帧)。希望这有帮助!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python