124

という名前の csv ファイルがありますparams.csv。以下を使用しipython qtconsoleてパンダを開いて作成しました。dataframe

import pandas
paramdata = pandas.read_csv('params.csv', names=paramnames)

ここで、paramnamesは文字列オブジェクトの Python リストです。例paramnames(実際のリストの長さは 22):

paramnames = ["id",
"fc",
"mc",
"markup",
"asplevel",
"aspreview",
"reviewpd"]

ipython プロンプトで入力して Enter キーを押すと、 Pandas web サイトparamdataの例に示すように、列と値を含むデータフレームが取得されません。代わりに、データフレームに関する情報を取得します。私は得る:

In[35]: paramdata
Out[35]: 
<class 'pandas.core.frame.DataFrame'>
Int64Index: 59 entries, 0 to 58
Data columns:
id                    59  non-null values
fc                    59  non-null values
mc                    59  non-null values
markup                59  non-null values
asplevel              59  non-null values
aspreview             59  non-null values
reviewpd              59  non-null values

入力paramdata['mc']すると、列の期待どおりの値が得られmcます。2 つの質問があります。

(1) pandas Web サイトの例 (たとえば、dfここの出力を参照してください: http://pandas.sourceforge.net/indexing.html#additional-column-access ) データフレームの名前を入力すると、実際のデータ。実際のデータではなく、上記のようにデータフレームに関する情報を取得しているのはなぜですか? 出力オプションをどこかに設定する必要がありますか?

(2) データフレーム内のすべての列を、名前を入力せずに画面に出力するにはどうすればよいですか。つまり、paramdata[['id','fc','mc']].

私はパンダバージョン0.8を使用しています。

ありがとうございました。

4

7 に答える 7

306

使用する:

pandas.set_option('display.max_columns', 7)

これにより、パンダはあなたが持っている7つの列を表示するように強制されます。またはより一般的に:

pandas.set_option('display.max_columns', None)

これにより、任意の数の列が表示されます。

説明:のデフォルトはmax_columnsです0。これは、すべての列をコンソールの幅に押し込める場合にのみテーブルを表示するようにPandasに指示します。

または、次の例を使用して、コンソールの幅(文字数)をデフォルトの80から変更できます。

pandas.set_option('display.width', 200)
于 2012-11-05T18:13:42.867 に答える
46

画面に表示するにはデータが多すぎるため、代わりに要約が表示されます。

とにかくデータを出力したい場合 (おそらく画面に収まらず、見栄えもよくありません):

print paramdata.values

データフレームをその numpy-array 行列表現に変換します。

paramdata.columns

それぞれの列名を格納し、

paramdata.index

それぞれのインデックス (行名) を格納します。

于 2012-07-06T12:18:26.667 に答える
22

ではipython、これを使用して、非常にうまく機能するデータフレームの一部を印刷します (最初の 100 行を印刷します)。

print paramdata.head(100).to_string()
于 2013-11-14T09:18:43.600 に答える
9

DataFrame.head(x)/を使用.tail(x)して、DataFrameの最初/最後のx行を表示することもできます。

于 2012-07-06T16:50:17.943 に答える
7

私は R から python に来ています。R のhead()関数は、データを見るのに非常に便利な方法で行をラップします。

> head(cbind(mtcars, mtcars, mtcars))
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb  mpg cyl
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 21.0   6
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 21.0   6
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 22.8   4
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1 21.4   6
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2 18.7   8
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1 18.1   6
                  disp  hp drat    wt  qsec vs am gear carb  mpg cyl disp  hp
Mazda RX4          160 110 3.90 2.620 16.46  0  1    4    4 21.0   6  160 110
Mazda RX4 Wag      160 110 3.90 2.875 17.02  0  1    4    4 21.0   6  160 110
Datsun 710         108  93 3.85 2.320 18.61  1  1    4    1 22.8   4  108  93
Hornet 4 Drive     258 110 3.08 3.215 19.44  1  0    3    1 21.4   6  258 110
Hornet Sportabout  360 175 3.15 3.440 17.02  0  0    3    2 18.7   8  360 175
Valiant            225 105 2.76 3.460 20.22  1  0    3    1 18.1   6  225 105
                  drat    wt  qsec vs am gear carb
Mazda RX4         3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     3.90 2.875 17.02  0  1    4    4
Datsun 710        3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 3.15 3.440 17.02  0  0    3    2
Valiant           2.76 3.460 20.22  1  0    3    1

この機能を模倣するために、次の小さな python 関数を開発しました。

def rhead(x, nrow = 6, ncol = 4):
    pd.set_option('display.expand_frame_repr', False)
    seq = np.arange(0, len(x.columns), ncol)
    for i in seq:
        print(x.loc[range(0, nrow), x.columns[range(i, min(i+ncol, len(x.columns)))]])
    pd.set_option('display.expand_frame_repr', True)

(明らかにパンダとnumpyに依存します)

于 2018-12-20T17:42:40.643 に答える
0

シーケンススライシング構文を使用できます。

paramdata[:5] # first five records
paramdata[-5:] # last five records
paramdata[:] # all records

データフレームが画面バッファに収まらない場合があります。その場合は、小さなサブセットを印刷するか、別のサブセットにエクスポートするか、プロットするか、(もう一度csv)する方がよいでしょう。

于 2012-07-06T19:49:50.050 に答える