使用值作为元组从熊猫数据帧创建字典

时间:2021-04-28 20:46:00

标签: python pandas dictionary

我有一个这样的数据框:


int main()          

{
    int a=1,n,m=0;
    int s[a];
    
    while(n%2 != 0 && n%7 !=0 && n>0){
        
            printf("Sayı gir : ");
            scanf("%d",&n);
            s[a-1]= n ;
            a++;
        
    }
    for (int i=0;i<a-2;i++) {
        m+=s[i];
    }
    printf("Total = %d",m);
    return 0;
}

我想要做的是从此数据框中创建一个字典,其中行索引是键,col1 和 col2 是我的字典的元组形式的值。这是我在做什么,但这会返回一个列表:

>>> df = pd.DataFrame(np.array([[1, 2], ['a', 'b']]), columns=['col1', 'col2'])
>>> df
  col1 col2
0    1    2
1    a    b

这是我想要得到的:

>>> import numpy as np
>>> import pandas as pd
>>> df.T.to_dict('list')
{0: ['1', '2'], 1: ['a', 'b']}

3 个答案:

答案 0 :(得分:3)

让我们试试

df.agg(tuple,1).to_dict()

答案 1 :(得分:1)

另一种方法是采用你已经应用的字典理解的字典:

>>> {k: tuple(v) for k, v in df.T.to_dict("list").items()}
{0: ('1', '2'), 1: ('a', 'b')}

答案 2 :(得分:1)

不确定速度,但itertuples

dict(zip(df.index, df.itertuples(index=False, name=None)))
{0: ('1', '2'), 1: ('a', 'b')}

dict(zip(df.index,map(tuple,df.values)))