我有一个这样的数据框:
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']}
答案 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)))