
鳥のEXCELのデータを修正したいのですが、
方法が分かりません。
Pythonで簡単に出来ると聞いたことはありますが、
プログラミングに関しては全く素人で、なかなか勉強する時間もとれない状況です。
1、重複を取り除く
2、各地点ごとの種数を計算する
3、緯度ごとに並び替える
1、重複を取り除く
まず、以下のようなEXCELのデータを扱っています。
「、」がセルの境です。
緯度、地点、種名、個体数
33.5、A、suzume、3
33.5、A、karasu、2
33.5、A、sekirei、3
33.5、A、suzume、1
33.5、A、kiji、1
33.5、B、suzume、3
33.5、B、karasu、2
33.5、B、hato、1
33.5、B、suzume、1
33.5、C、hato、5
40.0、A、suzume、2
40.0、A、karasu、3
40.0、B、sekirei、4
..........
これは単なる例で実際のデータではありませんが、
この場合、同じ地点内でsuzumeが重複してあります(はじめのAとB)。
2つ目以降のsuzumeを消して1つ目に個体数をたす。
2、各地点ごとの種数を計算する
地点はA、B、C、A、B、…
とアルファベットで表記されています。
それぞれの地点ごとに種数の合計を出す。
3、緯度ごとに並び替える
緯度の列に各数値が表記されてあります。
これはバラバラで、高緯度から低緯度になるように並び替える。
以上1,2,3のことをしたいです。
このようなことをする(プログラムを組む)場合、どのようなソースコードになりますか?
どなたかご教授お願い致します。
質問内容に関して意味の分からない部分がありましたらお申し付け下さい。
No.2ベストアンサー
- 回答日時:
(日本語は母国語ではないので。
この文法がおかしかったらすみません…)PythonでCSVファイルのデータをpython listに変換:
>>> import csv
>>> with open('foo.csv', 'rb') as f:
... r = csv.reader(f)
... l = [row for row in r]
...
>>> l
[['33.5', 'A', 'suzume', '3'], ['33.5', 'A', 'karasu', '2'], ['33.5', 'A', 'sekirei', '3'], ['33.5', 'A', 'suzume', '1'], ['33.5', 'A', 'kiji', '1'], ['33.5', 'B', 'suzume', '3'], ['33.5', 'B', 'karasu', '2'], ['33.5', 'B', 'hato', '1'], ['33.5', 'B', 'suzume', '1'], ['33.5', 'C', 'hato', '5'], ['40.0', 'A', 'suzume', '2'], ['40.0', 'A', 'karasu', '3'], ['40.0', 'B', 'sekirei', '4']]
これで「l」はlistのlistです。
CSVが「,」と違う文字でくぎる場合は (例えば「、」):
r = csv.reader(f, delimiter='、')
最後の1,2,3(l[x[3]])がいらないみたいので、それを消えればlistからsetにすると['33.5','A','suzume']を一つになります:
>>> l2 = list(set([tuple(z[0:3]) for z in l]))
>>> l2
[('33.5', 'A', 'suzume'), ('40.0', 'B', 'sekirei'), ('33.5', 'A', 'sekirei'), ('40.0', 'A', 'suzume'), ('33.5', 'C', 'hato'), ('40.0', 'A', 'karasu'), ('33.5', 'B', 'hato'), ('33.5', 'A', 'kiji'), ('33.5', 'B', 'karasu'), ('33.5', 'B', 'suzume'), ('33.5', 'A', 'karasu')]
x[1]、x[2]、(x[1],x[2])等で会計するのではfilterとlamdaが便利です:
>>> sum([float(z[0]) for z in filter(lambda x: x[1] == 'A', l2)])
214.0
ありがとうございます。
参考にさせてもらいます。
Thank you for the answer.
I'll try with this reference.
No.1
- 回答日時:
Pythonには「辞書型」という配列のようなものがあります。
通常、配列は ary[index]という形で 配列aryのindex番目のデータを使用します。
※ Excelで例えるなら、 A[5] は A列の5番目で A5 / R5C1 セル に相当
辞書型では、 dic[key] で、番号の代わりに、key (文字列等が使える) で選択します。
地点と緯度からkeyを作って、
個体数合計[key]=個体数合計[key] + 個体数
のように集計していきます。
元がテキストファイル(CSV等)なら、Pythonで読むのは簡単です。
ですが、Excel形式のファイル(XLS,XLSX)だと、まずは「Excelのデータを読み込む」部分を用意する必要があります。
ExcelVBAでも同様のことができるし、Excelにピボットテーブルで集計することもできます。
数回程度しかしないことなら、ピボットテーブルの使い方を勉強するのがいいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(悩み相談・人生相談) 複数の緯度経度に囲まれた面内に点を確認できるか 1 2023/03/01 19:41
- 統計学 統計学、エクセルがわかりません!解答と詳しい解説をお願いします! (1)それぞれの地域別に記述統計量 9 2022/08/21 16:30
- Excel(エクセル) Googleスプレッドシートの割合の関数と円グラフの並べ替えについて 1 2022/07/22 17:31
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- その他(IT・Webサービス) 高速処理可能な表計算ソフトについて ExcelやGoogleスプレッドシートのような表計算ソフトで、 2 2023/04/29 16:06
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- 計算機科学 エクセルのデータの表すことについて 2 2023/03/05 20:49
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- 高校受験 高校受験まで2週間/未だに理社が平均点以下 理社の点数が未だに平均点以下から上がらず困っています… 1 2023/01/29 18:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PythonでのEXCELデータの処理に...
-
3桁コードの先頭文字を取り出す
-
PCサイトを携帯変換してくれるp...
-
ピクセル,dpiから容量(バイト...
-
VBAでプロシージャ間のデータを...
-
sort関数でひらがなとカタカナ...
-
改行文字保存時のゴミ
-
3バイト文字(UTF-8)をprintfで...
-
UTF-8で5~6バイトになる文字コ...
-
int型(2バイト)データの分割
-
linuxサーバーにUPしたCGIにネ...
-
「1TB」のHDDに日本語は何字入...
-
一行掲示板を改行が入る掲示板...
-
バイト境界とは
-
glibcをワイド文字=2バイト指定...
-
昇順に整列するプログラムにつ...
-
cgiログデータ入力
-
Perlでファイル名を変更したい...
-
ECUコードのCGIを編集す...
-
CSVから構造体へ代入
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 1セル当りの文字数が2...
-
DataGridViewの特定列に入力さ...
-
ListView重複データ削除
-
A1に100と入力した時点で 自動...
-
Excel VBA チェックツール
-
GUIDの重複
-
例外処理について Ruby
-
ExcelVBA エイルターオプション...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
エクセルシート名の制限を変更...
-
Excel VBA メール作成について ...
-
char str[256]の256の意味は?
-
バイト列とバイナリ列の違いが...
-
stable diffusionのエラー
-
ピクセル,dpiから容量(バイト...
-
C++ Builderで文字列をバイトに...
-
エクセルVBA:日付データの変換...
-
Javaで日本語1文字のバイト数
おすすめ情報