Home > Tags > CSV
CSV
Rで統計: CSVファイルの読み込み - read.csv()メソッド
- 2008-09-10 (水)
- R
読み込むCSVファイルは2007年度のセリーグの打撃成績の順位です。
参考:2007年度 セントラル・リーグ 個人打撃成績(規定打席以上)
batting2007.csv
順位,打率,安打 1,0.346,193 2,0.343,204 3,0.318,172 4,0.313,177 5,0.31,175 6,0.308,155 7,0.302,122 8,0.302,118 9,0.3,120 10,0.3,139
プロンプト
> read.csv("batting2007.csv")
順位 打率 安打
1 1 0.346 193
2 2 0.343 204
3 3 0.318 172
4 4 0.313 177
5 5 0.310 175
6 6 0.308 155
7 7 0.302 122
8 8 0.302 118
9 9 0.300 120
10 10 0.300 139
> batting$安打
[1] 193 204 172 177 175 155 122 118 120 139
read.csv()メソッドでCSVファイルを読み込み、そのデータフレームをbatting変数に格納しています。
実行結果を見ると、ファイル1行目のフィールド(列)名が変数名を表し、2行目以降がテーブル本体を表していることが分かります。これによって、例えば安打の列を抽出したい場合は、batting$安打と指定すればOKです。
ただ、毎回々々「batting$安打」と指定するのは億劫ですので、以下のコマンドで簡略化します。
> attach(batting) > 安打 [1] 193 204 172 177 175 155 122 118 120 139 >
attach()関数によってワークスペースにオブジェクトが保存され、データフレーム内の変数名のみでのアクセスが可能になります。
read.csv()メソッドのheader引数にFALSEを指定した場合
read.csv()メソッドはデフォルトでheader引数にTRUEが指定されていますが、以下のようにFALSE(必ず大文字)を指定することも出来ます。その場合の動作は以下のようになります。
> batting <- read.csv("batting2007.csv", header=FALSE)
> batting
V1 V2 V3
1 順位 打率 安打
2 1 0.346 193
3 2 0.343 204
4 3 0.318 172
5 4 0.313 177
6 5 0.31 175
7 6 0.308 155
8 7 0.302 122
9 8 0.302 118
10 9 0.3 120
11 10 0.3 139
> batting$V3
[1] 安打 193 204 172 177 175 155 122 118 120 139
Levels: 118 120 122 139 155 172 175 177 193 204 安打
>
ファイル1行目の列名がテーブル本体のデータセットに組み込まれていることが分かります。この場合の列へのアクセスは上の実行結果から、batting$V3と分かります。フィールド(列)名(一行目)を省略したCSVファイルを読み込みたい場合にはこのオプション引数を指定します。
- Comments: 0
- Trackbacks: 0
Python: CSVファイルに書き込み - csv.writerオブジェクト
- 2008-06-18 (水)
- Python
試しにチャット履歴をCSVファイルに保存するという場合の例を取り上げます。まぁ実際はメッセンジャーアプリのXMLファイル等をコンバートして保存する例を持ってきた方が良いのかもしれませんが、そうするとコードが長くなり今記事の焦点が合わなくなるので割愛します。
ソースコード
#!/usr/bin/python # coding: UTF-8 # CSVファイルに書き込み import csv # CSVファイルを扱うためのモジュールのインポート filename = "table02.csv" writecsv = csv.writer(file(filename, 'w'), lineterminator='n') # 書き込みファイルの設定 writecsv.writerow(['2007/11/12 20:19:18', 'や、こんばんは。']) # 1行(リスト)の書き込み writecsv.writerow(['2007/11/12 20:19:39', 'おいーす']) writecsv.writerow(['2007/11/12 20:19:53', '久しぶりだね']) writecsv.writerow(['2007/11/12 20:20:02', 'そだね。']) chatable = [['2007/11/12 20:42:58', 'そうだね'], ['2007/11/12 20:43:03', '色々ありがとう'], ['2007/11/12 20:43:12', 'いえ、こちらこそ。'], ['2007/11/12 20:43:21', 'それじゃあまた'], ['2007/11/12 20:43:27', 'うん、またねー。']] writecsv.writerows(chatable) # 複数行(リストのリスト|テーブル)の書き込み
実行結果 (table02.csv)
2007/11/12 20:19:18,や、こんばんは。 2007/11/12 20:19:39,おいーす 2007/11/12 20:19:53,久しぶりだね 2007/11/12 20:20:02,そだね。 2007/11/12 20:42:58,そうだね 2007/11/12 20:43:03,色々ありがとう 2007/11/12 20:43:12,いえ、こちらこそ。 2007/11/12 20:43:21,それじゃあまた 2007/11/12 20:43:27,うん、またねー。
リファレンス
- Comments: 0
- Trackbacks: 2
Python: CSVファイルの読み込み - csv.readerオブジェクト
- 2008-06-17 (火)
- Python
ソースコード
#!/usr/bin/python
# coding: UTF-8
# CSVファイルの読み込み
import csv
filename = "table01.csv"
csvfile = open(filename)
print csvfile
for row in csv.reader(csvfile):
print row # 1行のリスト
for elem in row:
print elem, # 行の中の要素
print
csvfile.close()
print csvfile
CSVファイル (table01.csv) (番号,名前)
1,aki 2,hiro 3,norika 4,kaede
実行結果
<open file 'table01.csv', mode 'r' at 0x01BECCC8> ['1', 'aki'] 1 aki ['2', 'hiro'] 2 hiro ['3', 'norika'] 3 norika ['4', 'kaede'] 4 kaede <closed file 'table01.csv', mode 'r' at 0x01BECCC8>
リファレンス
- Comments: 0
- Trackbacks: 2
Home > Tags > CSV