সুতরাং আমি একটি খালি পান্ডাস ডেটা ফ্রেম আরম্ভ করেছি এবং আমি এই ডাটাফ্রেমের সারি হিসাবে পুনরাবৃত্তভাবে তালিকা (বা সিরিজ) সংযোজন করতে চাই। এটি করার সর্বোত্তম উপায় কী?
সুতরাং আমি একটি খালি পান্ডাস ডেটা ফ্রেম আরম্ভ করেছি এবং আমি এই ডাটাফ্রেমের সারি হিসাবে পুনরাবৃত্তভাবে তালিকা (বা সিরিজ) সংযোজন করতে চাই। এটি করার সর্বোত্তম উপায় কী?
উত্তর:
কখনও কখনও পান্ডার বাইরে সমস্ত সংযোজন করা সহজ, তারপরে, কেবল একটি শটে ডেটা ফ্রেম তৈরি করুন।
>>> import pandas as pd
>>> simple_list=[['a','b']]
>>> simple_list.append(['e','f'])
>>> df=pd.DataFrame(simple_list,columns=['col1','col2'])
col1 col2
0 a b
1 e f
df = pd.DataFrame(columns=list("ABC"))
df.loc[len(df)] = [1,2,3]
df
।
এখানে একটি সহজ এবং বোবা সমাধান:
>>> import pandas as pd
>>> df = pd.DataFrame()
>>> df = df.append({'foo':1, 'bar':2}, ignore_index=True)
তুমি কি এ জাতীয় কিছু করতে পার?
>>> import pandas as pd
>>> df = pd.DataFrame(columns=['col1', 'col2'])
>>> df = df.append(pd.Series(['a', 'b'], index=['col1','col2']), ignore_index=True)
>>> df = df.append(pd.Series(['d', 'e'], index=['col1','col2']), ignore_index=True)
>>> df
col1 col2
0 a b
1 d e
কারও কি আরও মার্জিত সমাধান আছে?
মাইক চিরিকোর উত্তর অনুসরণ করা ... আপনি যদি ডেটাফ্রেম ইতিমধ্যে জনবসতির পরে কোনও তালিকা যুক্ত করতে চান ...
>>> list = [['f','g']]
>>> df = df.append(pd.DataFrame(list, columns=['col1','col2']),ignore_index=True)
>>> df
col1 col2
0 a b
1 d e
2 f g
এখানে একটি ফাংশন যা ইতিমধ্যে তৈরি করা ডেটাফ্রেম দেওয়া হয়েছে, এটি একটি নতুন সারি হিসাবে একটি তালিকা যুক্ত করবে। এটিতে সম্ভবত ত্রুটি ক্যাচারারদের ফেলে দেওয়া উচিত তবে আপনি কী যুক্ত করছেন তা যদি আপনি ঠিক জানেন তবে এটি কোনও সমস্যা হওয়া উচিত নয়।
import pandas as pd
import numpy as np
def addRow(df,ls):
"""
Given a dataframe and a list, append the list as a new row to the dataframe.
:param df: <DataFrame> The original dataframe
:param ls: <list> The new row to be added
:return: <DataFrame> The dataframe with the newly appended row
"""
numEl = len(ls)
newRow = pd.DataFrame(np.array(ls).reshape(1,numEl), columns = list(df.columns))
df = df.append(newRow, ignore_index=True)
return df
আপনি যদি কোনও সিরিজ যুক্ত করতে চান এবং ডেটাফ্রেমের কলাম হিসাবে সিরিজ সূচকটি ব্যবহার করতে চান তবে আপনাকে কেবল বন্ধনীগুলির মধ্যে সিরিজ যুক্ত করতে হবে:
In [1]: import pandas as pd
In [2]: df = pd.DataFrame()
In [3]: row=pd.Series([1,2,3],["A","B","C"])
In [4]: row
Out[4]:
A 1
B 2
C 3
dtype: int64
In [5]: df.append([row],ignore_index=True)
Out[5]:
A B C
0 1 2 3
[1 rows x 3 columns]
হোয়াইট আউট ignore_index=True
আপনি সঠিক ইনডেক্স পাবেন না।
এখানে উল্লিখিত হিসাবে - https://kite.com/python/answers/how-to-append-a-list-as-a-row-to-a-pandas-dataframe-in-python , আপনাকে প্রথমে প্রয়োজন তালিকাটিকে একটি সিরিজে রূপান্তর করুন তারপরে সিরিজটি ডেটাফ্রেমে সংযুক্ত করুন।
df = pd.DataFrame([[1, 2], [3, 4]], columns = ["a", "b"])
to_append = [5, 6]
a_series = pd.Series(to_append, index = df.columns)
df = df.append(a_series, ignore_index=True)