0

データを分類し、平均と標準偏差を取得するコードを書いています。これが私のデータの例です。

3917 1 -0.662261 25.148 22.9354 68.8076 
3918 1 12.7649 18.7451 7.68473 69.0063 
3919 1 -9.56836 -23.3265 -61.953 68.8357 
3920 1 11.6292 31.6525 -29.3697 69.1372 
3921 2 26.4837 -66.7897 12.0257 69.2282 
3922 1 -9.81652 14.3788 9.38343 69.1217 
3923 2 39.931 -88.1879 109.498 69.1604 
3924 1 4.5502 3.53887 -6.59604 69.486 
3925 2 13.6801 -24.6628 -5.7568 69.9398 
3926 1 -10.5635 7.05517 -8.82785 70.2263

ご覧のとおり、6 つの列があります。ここでは3段階の計算を考えています。

  1. これらの数値を 6 列目に基づいて分類します。6 列目は 0 ~ n の浮動小数点数で構成されます。0~1、1~2、2~3 .... n-1 ~ n のように、n 個のセクション (またはサブ マトリックスなど) を生成したいと考えています。最後の数字は、セクションを作りたいので、最後のデータの切り上げ数にする必要があります。たとえば、最後の番号が 121.2513 の場合、そのデータを含めるには、最後のセクションを 120~121 にする必要があります。

  2. 1~5 列目の他のすべての番号を、6 列目に基づいて対応するサブセクションに再割り当てします。特定のセクションに番号がない場合は、0 として出力します。サブセクションの数は n になります。各サブセクションの要素数はランダムです。

  3. サブセクションごとに 3 列目、4 列目、5 列目の平均と標準偏差を取得し、「サブセクション内の要素数、サブセクションの開始数、3 列目、4 列目、5 列目の平均偏差と標準偏差」を出力ファイルに書き込みます。桁'

複数の for ループでこれを試していましたが、複雑になりすぎてエラーになります。データを分類し、各サブセクションで遊んで、Python で出力する他の簡単な方法はありますか? また、for ループがまったく機能しません。このデータを使用した簡単な例の提案はありますか?

4

3 に答える 3

2

このタスクは、pandas ライブラリに適しています。( http://pandas.pydata.org/ ) あなたの投稿から私が理解したことから、あなたは列ごとの平均と標準偏差を計算したいと考えていました。行単位の統計を計算するには、パラメーターaxis=1を mean および std 関数に追加します。以下のコードでは、例が「tmp.txt」に保存されています。最初のステップでそれをロードします。その後、データフレームの統計を簡単に計算できます。

import pandas as pd
df =pd.read_csv('tmp.txt',sep=' ',header=None)
means = df.mean()
stds = df.std()

パンダの詳細については、簡単な紹介をご覧ください: http://pandas.pydata.org/pandas-docs/stable/10min.html

于 2013-08-27T21:58:20.700 に答える