2017-02-08 7 views
1

私の質問は、DataFrameのappend()メソッドを使用してDataFrameにきれいに行を追加する方法ですか?Pandas append()行の具体的な例

docsによると、append()は、"DataFrameまたはSeries/dict-likeオブジェクトまたはこれらのリスト"をパラメータとして取ります。説明を考えると、私はこのようなものが可能であるべきと思ったが、私は右の構文を見つけることができません。

df = pd.DataFrame(columns=('x', 'y', 'label')) 
df.append([2, 4, 1]) # Does not work 

私はdf.loc[len(df)] = [4, 4, 1]に行を追加することができるよしかし、これは非常にきれいではありません。

+0

あなたは何を意味するのです」それは非常にきれいではありません" –

+0

"行を追加する"と言うと、 "loc [len(df)]"というよりも理解が容易です。 –

答えて

0

あなたにも次の操作を行うことができます。

df.loc[-1] = [4, 4, 1] 

本当にそれ未満を持ってする方法はありませんが。同じindexまたは同じcolumns namesDataFrame.append必要SeriesまたはDataFrame

1

dfとして:

df1 = pd.DataFrame([[2, 4, 1]], columns=('x', 'y', 'label')) 
print (df1) 
    x y label 
0 2 4  1 

df = df.append([pd.Series([4, 4, 1], index = df.columns)], ignore_index=True) 
df = df.append(df1, ignore_index=True) 
#your solution 
df.loc[len(df)] = [4, 4, 1] 
print (df) 
    x y label 
0 4.0 4.0 1.0 
1 2.0 4.0 1.0 
2 4.0 4.0 1.0 

#dont align because default columns names 
df = df.append([[4, 4, 1]]) 
print (df) 
    x y label 0 1 2 
0 NaN NaN NaN 4.0 4.0 1.0 

しかし、デフォルトの列名の場合:

df = pd.DataFrame(columns=range(3)) 
print (df) 
Empty DataFrame 
Columns: [0, 1, 2] 
Index: [] 

df = df.append([[4, 4, 1]]) 
print (df) 
    0 1 2 
0 4.0 4.0 1.0 
関連する問題