जवाबों:
कभी-कभी पंडों के बाहर सभी प्रकार के काम करना आसान होता है, फिर, केवल एक शॉट में डेटाफ़्रेम बनाएं।
>>> 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
list
। आपने अभी-अभी list
कंस्ट्रक्टर को अधिलेखित किया है ।
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
यदि आप एक श्रृंखला जोड़ना चाहते हैं और DataFrame के कॉलम के रूप में श्रृंखला के सूचकांक का उपयोग करना चाहते हैं, तो आपको केवल ब्रैकेट के बीच श्रृंखला को जोड़ना होगा:
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]
Whitout ignore_index=True
आप उचित सूचकांक नहीं मिलता है।
यहां एक फ़ंक्शन है, जो पहले से ही बनाई गई डेटाफ़्रेम दी गई है, एक सूची को एक नई पंक्ति के रूप में जोड़ देगी। इसमें शायद त्रुटि पकड़ने वाले को फेंक दिया जाना चाहिए, लेकिन यदि आप जानते हैं कि आप वास्तव में क्या जोड़ रहे हैं तो यह एक मुद्दा नहीं होना चाहिए।
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
जैसा कि यहां बताया गया है - 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)