আমার ব্যবহারের জন্য (xy পজিশনের সাথে নোডের নামগুলি) আমি সর্বাধিক সহায়ক / স্বজ্ঞাত এর কাছে @ ব্যবহারকারীর ১1717৯77's এর উত্তর খুঁজে পেয়েছি:
import pandas as pd
df = pd.read_csv('glycolysis_nodes_xy.tsv', sep='\t')
df.head()
nodes x y
0 c00033 146 958
1 c00031 601 195
...
xy_dict_list=dict([(i,[a,b]) for i, a,b in zip(df.nodes, df.x,df.y)])
xy_dict_list
{'c00022': [483, 868],
'c00024': [146, 868],
... }
xy_dict_tuples=dict([(i,(a,b)) for i, a,b in zip(df.nodes, df.x,df.y)])
xy_dict_tuples
{'c00022': (483, 868),
'c00024': (146, 868),
... }
অভিযোজ্য বস্তু
আমি পরে অন্যান্য, তবে সম্পর্কিত, কাজের জন্য এই ইস্যুটিতে ফিরে এসেছি। এখানে এমন একটি দৃষ্টিভঙ্গি যা [নিখুঁত] গৃহীত উত্তরকে আরও ঘনিষ্ঠভাবে আয়না করে।
node_df = pd.read_csv('node_prop-glycolysis_tca-from_pg.tsv', sep='\t')
node_df.head()
node kegg_id kegg_cid name wt vis
0 22 22 c00022 pyruvate 1 1
1 24 24 c00024 acetyl-CoA 1 1
...
পান্ডাস ডেটাফ্রেমকে একটি [তালিকা], {ডিক্ট}, {ডিক্টের {ডিক}}, ... তে রূপান্তর করুন
প্রতি গৃহীত উত্তর:
node_df.set_index('kegg_cid').T.to_dict('list')
{'c00022': [22, 22, 'pyruvate', 1, 1],
'c00024': [24, 24, 'acetyl-CoA', 1, 1],
... }
node_df.set_index('kegg_cid').T.to_dict('dict')
{'c00022': {'kegg_id': 22, 'name': 'pyruvate', 'node': 22, 'vis': 1, 'wt': 1},
'c00024': {'kegg_id': 24, 'name': 'acetyl-CoA', 'node': 24, 'vis': 1, 'wt': 1},
... }
আমার ক্ষেত্রে, আমি একই জিনিসটি করতে চেয়েছিলাম তবে পান্ডস ডেটাফ্রেমে নির্বাচিত কলামগুলি দিয়েছিলাম, তাই আমার কলামগুলি টুকরো টুকরো করা দরকার। দুটি পন্থা আছে।
- সরাসরি:
(দেখুন: মূল মানগুলির জন্য ব্যবহৃত কলামগুলি সংজ্ঞায়িত করে পান্ডাকে অভিধানে রূপান্তর করুন )
node_df.set_index('kegg_cid')[['name', 'wt', 'vis']].T.to_dict('dict')
{'c00022': {'name': 'pyruvate', 'vis': 1, 'wt': 1},
'c00024': {'name': 'acetyl-CoA', 'vis': 1, 'wt': 1},
... }
- "অপ্রত্যক্ষভাবে:" প্রথমে পান্ডাস ডেটাফ্রেমে (আবার দুটি পন্থা) থেকে কাঙ্ক্ষিত কলাম / ডেটা স্লাইস করুন,
node_df_sliced = node_df[['kegg_cid', 'name', 'wt', 'vis']]
অথবা
node_df_sliced2 = node_df.loc[:, ['kegg_cid', 'name', 'wt', 'vis']]
এরপরে অভিধানের অভিধান তৈরি করতে ব্যবহার করা যেতে পারে
node_df_sliced.set_index('kegg_cid').T.to_dict('dict')
{'c00022': {'name': 'pyruvate', 'vis': 1, 'wt': 1},
'c00024': {'name': 'acetyl-CoA', 'vis': 1, 'wt': 1},
... }
Dataframe.to_dict()
?