繁体   English   中英

如何在不指定熊猫的列名的情况下从数据框创建字典?

[英]How can i create a dictionary from a dataframe without specifying column names in pandas?

我试图将数据框转换为大熊猫字典,但遇到了问题。 当我指定列名时,我能够将数据帧转换为字典,但是当我尝试不指定列名而仅按列号执行操作时,将引发错误。

这是我的数据框(df1)的示例

                       id                  Crub
    0   At1NC000060_TBH_1             Not found
    1   At1NC005280_TBH_1      Known_Gene_Sense
    2   At1NC007770_TBH_1      Known_Gene_Sense
    3   At1NC018710_TBH_1             Not found
    4   At1NC027560_TBH_1  Known_Gene_Antisense
    5   At1NC030450_TBH_1      Known_Gene_Sense
    6   At1NC031370_TBH_1  Known_Gene_Antisense
    7   At1NC035150_TBH_1  Known_Gene_Antisense
    8   At1NC046250_TBH_1      Known_Gene_Sense
    -------------
    -----------

因此,当它尝试转换为如下所示的字典时,它可以正常工作

dic1 = dict(zip(df.id,df.Crub))
print(dic1)
{'At3NC025390_TBH_1': 'Known_Gene_Antisense', 'At1NC064880_TBH_1': 'Not found', 'At1NC035150_TBH_1': 'Known_Gene_Antisense', 'At3NC044300_TBH_1': 'Known_Gene_Antisense', 'At2NC000610_TBH_1': 'Known_Gene_Antisense'}

但是,当我尝试使用列号时,出现错误

col2 = list(df1)[1]
dic2 = dict(zip(df.id,df.col2))
print dic2

AttributeError: 'DataFrame' object has no attribute 'col2'

我不知道我在做什么错。

ps。 我无法指定列名称的原因是我正在尝试将此代码作为其他代码的一部分插入,因此我不完全是第二列的名称,但我绝对知道这是第二列。

如果您不知道名称,则无法调用类似的列。 如果您只知道职位,您可以

 dict(zip(df.id,df.iloc[:,1]))

将是第二列。 如果您想第一次使用0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM