2014-10-11 28 views
31

Vì vậy, tôi đã khởi tạo một DataFrame gấu trúc trống và tôi muốn lặp lại thêm các danh sách (hoặc Chuỗi) làm các hàng trong DataFrame này. Cách nào là tốt nhất để thực hiện việc này?Thêm một danh sách hoặc chuỗi vào một DataFrame gấu trúc như một hàng?

+0

câu trả lời tốt hơn có thể được tìm thấy dưới: http://stackoverflow.com/questions/10715965/add-one-row-in-a-pandas-dataframe – yuval

Trả lời

20

Bạn có thể làm điều gì đó như thế này không?

>>> 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 

Có ai có giải pháp thanh lịch hơn không?

+1

Dưới đây là một giải pháp đơn giản và câm: '' ' nhập gấu trúc làm pd df = pd.DataFrame() df = df.append ({'foo': 1, 'bar': 2}, ignore_index = True) # Lưu ý rằng phần bổ sung này không xảy ra trong địa điểm. '' ' –

35

Dưới đây là một giải pháp đơn giản và câm:

>>> import pandas as pd 
>>> df = pd.DataFrame() 
>>> df = df.append({'foo':1, 'bar':2}, ignore_index=True) 
+0

Điều gì là ngu ngốc về điều đó? :) – Nabin

+3

Lưu ý rằng đây là phần bổ sung dict, không phải danh sách – anthnyprschka

29

Đôi khi nó dễ dàng hơn để làm tất cả các phụ thêm bên ngoài của gấu trúc, sau đó, chỉ cần tạo các DataFrame trong một shot.

>>> import pandas as pd 
>>> list=[['a','b']] 
>>> list.append(['e','f']) 
>>> df=pd.DataFrame(list,columns=['col1','col2']) 
    col1 col2 
0 a b 
1 e f 
+0

rất thanh lịch, cảm ơn –

15

Tiếp theo vào câu trả lời Mike Chirico của ... nếu bạn muốn thêm một danh sách sau các dataframe đã được dân cư ...

>>> 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 
1

Nếu bạn muốn thêm một dòng và sử dụng index loạt như cột của DataFrame, bạn chỉ cần thêm series trong ngoặc đơn:

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 các ignore_index=True bạn d không có chỉ mục phù hợp.

0
df = pd.DataFrame(columns=list("ABC")) 
df.loc[len(df)] = [1,2,3] 
Các vấn đề liên quan