2017-08-30 12 views
2

テーブルは、通常、m行n列を持ちます。しかし、私たちはPythonで混乱したテーブルを作成できますか?pandasデータフレームを使用して混乱したテーブルを作成できますか?

同様:

1 2 3 
4 5 
6 7 8 9 

Rプログラミング言語には、自動的に「NA」で、空白または初期化されていないセルを満たした機能を持っています。たとえば、上記の表をRで作成すると、次のようになります。

1 2 3 NA 
4 5 NA NA 
6 7 8 9 

Rは自動的に最大列の表をm行作成します。 最大の列とは、既存のテーブルより多くの列を追加すると、Rは自動的に新しい列を作成し、前の行の新しい列を「NA」で初期化します。 たとえば、新しい行として[A, B, C, D, E, F]を追加するとします。そして、Rの結果は次のようになります。だから、

1 2 3 NA NA NA 
4 5 NA NA NA NA 
6 7 8 9 NA NA 
A B C D E F 

は、我々は、Pythonにおける機能のようなものを持っていますか?

+2

パンダが同じように 'NaN'sを追加する新しい行を追加します。 – jezrael

答えて

2

はい、pandasは同じことを行います。あなたが見ることができるように

>>> import pandas as pd 
>>> df = pd.DataFrame({"A":[1,2,3],"B":[2,65,4]}) 
>>> df 
    A B 
0 1 2 
1 2 65 
2 3 4 
>>> df1 = pd.DataFrame({"C":[1,2,3,5],"D":[2,65,4,8]}) 
>>> df1 
    C D 
0 1 2 
1 2 65 
2 3 4 
3 5 8 
>>> pd.concat([df, df1], axis=1) 
    A  B C D 
0 1.0 2.0 1 2 
1 2.0 65.0 2 65 
2 3.0 4.0 3 4 
3 NaN NaN 5 8 
>>> 

、パンダが短いカラムABためNaNと3行目に記入:たとえば、ここでは異なる長さの列単位で2つのデータフレームを連結する例を示します。行に沿って連結する場合

同じことが、例えば、見ることができる。

>>> df2 = pd.DataFrame({"A":[5,8,4,9],"B":[8,6,9,4],"C":[4,6,8,2]}) 
>>> df2 
    A B C 
0 5 8 4 
1 8 6 6 
2 4 9 8 
3 9 4 2 
>>> df 
    A B 
0 1 2 
1 2 65 
2 3 4 
>>> pd.concat([df, df2], axis=0) 
    A B C 
0 1 2 NaN 
1 2 65 NaN 
2 3 4 NaN 
0 5 8 4.0 
1 8 6 6.0 
2 4 9 8.0 
3 9 4 2.0 
>>> 
2

ちょうどコンストラクタにリストのリストを渡します。

pd.DataFrame([[1, 2, 3], [4, 5], [6, 7, 8, 9]], dtype=float) 

    0 1 2 3 
0 1.0 2.0 3.0 NaN 
1 4.0 5.0 NaN NaN 
2 6.0 7.0 8.0 9.0 


とは

df = pd.DataFrame([[1, 2, 3], [4, 5], [6, 7, 8, 9]], dtype=float) 
df.append(pd.Series([2.1, 3.4, 5.6, 0.1, 7.5, 9.3], name=3)) 

    0 1 2 3 4 5 
0 1.0 2.0 3.0 NaN NaN NaN 
1 4.0 5.0 NaN NaN NaN NaN 
2 6.0 7.0 8.0 9.0 NaN NaN 
3 2.1 3.4 5.6 0.1 7.5 9.3 
+0

plus1、これははるかに優れています;) – jezrael

関連する問題