software - python tutorial




ডেটাফ্রেমে একাধিক তালিকা নিন (4)

@ ওপসী pd.concat() কোডক্যাট ব্যবহার pd.concat() তবে কলামের নাম অন্তর্ভুক্ত করেনি। আপনি নিম্নলিখিতটি করতে পারেন, যা গৃহীত উত্তরের প্রথম সমাধানের মতো নয়, আপনাকে কলামের অর্ডারে নিয়ন্ত্রণ দেয় (ডিক্টগুলি এড়ান, যা সীমান্তবিহীন):

import pandas as pd
lst1 = range(100)
lst2 = range(100)
lst3 = range(100)

s1=pd.Series(lst1,name='lst1Title')
s2=pd.Series(lst2,name='lst2Title')
s3=pd.Series(lst3,name='lst3Title')
percentile_list = pd.concat([s1,s3,s3], axis=1)

percentile_list
Out[32]: 
    lst1Title  lst3Title  lst3Title
0           0          0          0
1           1          1          1
2           2          2          2
3           3          3          3
4           4          4          4
5           5          5          5
6           6          6          6
7           7          7          7
8           8          8          8
...

আমি কীভাবে একাধিক তালিকাগুলি নিয়ে এগুলি পাইথন ডেটাফ্রেমে বিভিন্ন কলাম হিসাবে রাখতে পারি? আমি এই সমাধানটি চেষ্টা করেছিলাম তবে কিছুটা সমস্যা হয়েছিল।

চেষ্টা 1:

  • তিনটি তালিকাগুলি রাখুন এবং সেগুলি একসাথে জিপ করুন এবং পুনরায় জিপ ব্যবহার করুন res = zip(lst1,lst2,lst3)
  • ফলন মাত্র একটি কলাম

চেষ্টা 2:

percentile_list = pd.DataFrame({'lst1Tite' : [lst1],
                                'lst2Tite' : [lst2],
                                'lst3Tite' : [lst3] }, 
                                columns=['lst1Tite','lst1Tite', 'lst1Tite'])
  • হয় 3 কলাম দ্বারা উপরের এক সারি (উপরে উপায়) বা আমি স্থানান্তর যদি এটি 3 সারি এবং 1 কলাম

আমি কীভাবে 3 টি কলাম (তিনটি তালিকা) পান্ডাস ডেটা ফ্রেমে 100 সারি (প্রতিটি স্বতন্ত্র তালিকার দৈর্ঘ্য) পেতে পারি?


আমি মনে করি আপনি প্রায় lst লোকেদের আশেপাশের অতিরিক্ত বর্গাকার বন্ধনীগুলি সরিয়ে দেওয়ার চেষ্টা করুন (এছাড়াও আপনি যখন ডিক্ট থেকে ডেটা ফ্রেম তৈরি করছেন তখন কলামের নাম নির্দিষ্ট করার দরকার নেই):

import pandas as pd
lst1 = range(100)
lst2 = range(100)
lst3 = range(100)
percentile_list = pd.DataFrame(
    {'lst1Title': lst1,
     'lst2Title': lst2,
     'lst3Title': lst3
    })

percentile_list
    lst1Title  lst2Title  lst3Title
0          0         0         0
1          1         1         1
2          2         2         2
3          3         3         3
4          4         4         4
5          5         5         5
6          6         6         6
...

আপনার যদি আরও পারফরম্যান্ট সমাধানের প্রয়োজন হয় তবে আপনি প্রথম চেষ্টা হিসাবে np.column_stack পরিবর্তে np.column_stack ব্যবহার করতে পারেন, এখানে উদাহরণের সাথে এটি প্রায় 2x স্পিডআপ, তবে আমার মতে পাঠযোগ্যতার ব্যয় কিছুটা হলেও আসে:

import numpy as np
percentile_list = pd.DataFrame(np.column_stack([lst1, lst2, lst3]), 
                               columns=['lst1Title', 'lst2Title', 'lst3Title'])

উপরের উত্তরগুলি যুক্ত করে, আমরা উড়তে তৈরি করতে পারি

df= pd.DataFrame()
list1 = list(range(10))
list2 = list(range(10,20))
df['list1'] = list1
df['list2'] = list2
print(df)

আশা করি এটা সাহায্য করবে !


এখানে আদিত্য গুরুর উত্তর যুক্ত করা হচ্ছে। মানচিত্র ব্যবহার করার দরকার নেই। আপনি সহজভাবে এটি করতে পারেন:

pd.DataFrame(list(zip(lst1, lst2, lst3)))

এটি কলামের নামগুলি 0,1,2 হিসাবে সেট করবে। আপনার নিজের কলামের নাম সেট করতে আপনি উপরের পদ্ধতিতে কীওয়ার্ড আর্গুমেন্ট columns পাস করতে পারেন।

pd.DataFrame(list(zip(lst1, lst2, lst3)),
              columns=['lst1_title','lst2_title', 'lst3_title'])




pandas