উত্তর:
আপনি অন্তর্নিহিত অ্যারে অ্যাক্সেস করতে এবং এর tolist
পদ্ধতিতে কল করতে পারেন :
>>> df = pd.DataFrame([[1,2,3],[3,4,5]])
>>> lol = df.values.tolist()
>>> lol
[[1L, 2L, 3L], [3L, 4L, 5L]]
df.to_numpy().tolist()
।
যদি ডেটাতে কলাম এবং সূচক লেবেল থাকে যা আপনি সংরক্ষণ করতে চান তবে কয়েকটি বিকল্প রয়েছে।
উদাহরণ ডেটা:
>>> df = pd.DataFrame([[1,2,3],[3,4,5]], \
columns=('first', 'second', 'third'), \
index=('alpha', 'beta'))
>>> df
first second third
alpha 1 2 3
beta 3 4 5
tolist()
পদ্ধতি অন্যান্য উত্তর বর্ণিত দরকারী কিন্তু উৎপাদনের শুধুমাত্র কোর ডেটা - আপনার চাহিদার উপর নির্ভর যথেষ্ট নাও হতে পারে, যা।
>>> df.values.tolist()
[[1, 2, 3], [3, 4, 5]]
একটি পদ্ধতিকে DataFrame
ব্যবহার করে জসনকে রূপান্তর করা df.to_json()
এবং তারপরে আবার পার্স করা। এটি অসুবিধাজনক তবে এর কিছু সুবিধা রয়েছে কারণ to_json()
পদ্ধতিটিতে কিছু কার্যকর বিকল্প রয়েছে।
>>> df.to_json()
{
"first":{"alpha":1,"beta":3},
"second":{"alpha":2,"beta":4},"third":{"alpha":3,"beta":5}
}
>>> df.to_json(orient='split')
{
"columns":["first","second","third"],
"index":["alpha","beta"],
"data":[[1,2,3],[3,4,5]]
}
জটিল কিন্তু দরকারী হতে পারে।
সুসংবাদটি হ'ল এটি কলাম এবং সারিগুলির জন্য তালিকা তৈরি করা বেশ সোজা ward
>>> columns = [df.index.name] + [i for i in df.columns]
>>> rows = [[i for i in row] for row in df.itertuples()]
এই ফলন:
>>> print(f"columns: {columns}\nrows: {rows}")
columns: [None, 'first', 'second', 'third']
rows: [['alpha', 1, 2, 3], ['beta', 3, 4, 5]]
যদি None
সূচকের নামটি বিরক্তিকর হয় তবে নামটি পরিবর্তন করুন:
df = df.rename_axis('stage')
তারপর:
>>> columns = [df.index.name] + [i for i in df.columns]
>>> print(f"columns: {columns}\nrows: {rows}")
columns: ['stage', 'first', 'second', 'third']
rows: [['alpha', 1, 2, 3], ['beta', 3, 4, 5]]
DataFrame.itertuples()
বা DataFrame.to_records()
এই সমস্ত জন্য না?
এটি আপনার প্রয়োজনের সাথে খাপ খায় কিনা তা আমি জানি না তবে আপনি এটি করতেও পারেন:
>>> lol = df.values
>>> lol
array([[1, 2, 3],
[3, 4, 5]])
এটি ndarray মডিউল থেকে কেবল একটি অদ্ভুত অ্যারে, যা আপনাকে সমস্ত স্বাভাবিক নিম্পী অ্যারে জিনিসগুলি করতে দেয়।
আমি সূচকটি সংরক্ষণ করতে চেয়েছিলাম, তাই আমি এই সমাধানটির মূল উত্তরটি অভিযোজিত করেছি:
list_df = df.reset_index().values.tolist()
এখন আপনি এটিকে অন্য কোথাও পেস্ট করতে পারেন (উদাহরণস্বরূপ স্ট্যাক ওভারফ্লো প্রশ্নটিতে পেস্ট করতে) এবং পরে এটি পুনরায় তৈরি করতে পারেন:
pd.Dataframe(list_df, columns=['name1', ...])
pd.set_index(['name1'], inplace=True)
হয়তো কিছু পরিবর্তন হয়েছে তবে এটি ndarrays এর একটি তালিকা ফিরিয়ে দিয়েছে যা আমার প্রয়োজন অনুসারে করেছে।
list(df.values)
দ্রষ্টব্য: আমি স্ট্যাক ওভারফ্লোতে এমন অনেকগুলি ক্ষেত্রে দেখেছি যেখানে একটি পান্ডাস সিরিজ বা ডেটাফ্রেমকে নুমপি অ্যারে বা সরল পাইথন তালিকায় রূপান্তর করা সম্পূর্ণরূপে অস্বস্তিকর। আপনি যদি লাইব্রেরিতে নতুন হন, আপনার প্রয়োজনীয় কার্যকারিতা ইতিমধ্যে সেই পান্ডা অবজেক্ট দ্বারা সরবরাহ করা হয়েছে কিনা ডাবল-চেক করার বিষয়টি বিবেচনা করুন।
@ জে পি পি এর একটি মন্তব্য উদ্ধৃত করতে :
অনুশীলনে , প্রায়শই NumPy অ্যারে তালিকার তালিকায় রূপান্তর করার প্রয়োজন হয় না।
যদি কোনও পান্ডাস ডেটা ফ্রেম / সিরিজ কাজ না করে তবে আপনি অন্তর্নির্মিত DataFrame.to_numpy
এবং Series.to_numpy
পদ্ধতিগুলি ব্যবহার করতে পারেন ।
for elem in some_series.values.tolist():
কারণে তারা জানে না যে আপনি কোনও সিরিজের উপাদানগুলি নিয়ে পুনরাবৃত্তি করতে পারেন। আমি নিশ্চিত নই যে এই উত্তর সম্পর্কে কী ভয়ঙ্কর।
আমরা প্রদত্ত ডেটাফ্রেমের প্রতিটি সারিতে পুনরাবৃত্তি করতে এবং প্রতিটি সারিটির ডেটা থেকে একটি তালিকা তৈরি করতে ডেটাফ্রেম.ইটিআরও () ফাংশনটি ব্যবহার করতে পারি:
# Empty list
row_list =[]
# Iterate over each row
for index, rows in df.iterrows():
# Create list for the current row
my_list =[rows.Date, rows.Event, rows.Cost]
# append the list to the final list
row_list.append(my_list)
# Print
print(row_list)
প্রদত্ত ডেটা ফ্রেমের প্রতিটি সারিটি আমরা সফলভাবে একটি তালিকায় বের করতে পারি
L
আউটপুট যুক্ত আছে?