RuntaScience diary

気象系データを扱う学生 旅が好きです

Welcome to my blog

About

Python ファイルをデータフレームに格納(読み込み; READ)

f:id:RuntaScience:20200703220402p:plain

こんにちは。今日はファイルの読み込みについてです。

 

 

テキストファイル

まずはモジュールをインポートします。

import numpy as np

カンマ区切り

pd.read_csv("XXX.txt") 

カンマで区切ってあるテキストファイルをインポートします。

データ⇓

Year, Month, Day, Data
2019, 1, 1, 12
2019, 2, 1, 14
2019, 3, 1, 13
2019, 4, 1, 12
2019, 5, 1, 10
2019, 6, 1, 10
2019, 7, 1, 15
2019, 8, 1, 12
2019, 9, 1, 10
2019, 10, 1, 12
2019, 11, 1, 10
2019, 12, 1, 12

 

df = pd.read_csv("XXX.txt")
df

 

  Year Month Day Data
0 2019 1 1 12
1 2019 2 1 14
2 2019 3 1 13
3 2019 4 1 12
4 2019 5 1 10
5 2019 6 1 10
6 2019 7 1 15
7 2019 8 1 12
8 2019 9 1 10
9 2019 10 1 12
10 2019 11 1 10
11 2019 12 1 12

 

タブ区切り

pd.read_table("XXX.txt")

タブ区切りのテキストファイルも同様にデータフレームに格納できます

Year	Month	Day	Data
2019	1	1	12
2019	2	1	14
2019	3	1	13
2019	4	1	12
2019	5	1	13
2019	6	1	11
2019	7	1	14
2019	8	1	12
2019	9	1	14
2019	10	1	14
2019	11	1	11
2019	12	1	15

 1)

df = pd.read_table("XXX.txt")
df

 2)

df = pd.read_csv("XXX.txt",sep="\t")
df

 

  Year Month Day Data
0 2019 1 1 12
1 2019 2 1 14
2 2019 3 1 13
3 2019 4 1 12
4 2019 5 1 10
5 2019 6 1 10
6 2019 7 1 15
7 2019 8 1 12
8 2019 9 1 10
9 2019 10 1 12
10 2019 11 1 10
11 2019 12 1 12

 

エクセルファイル

 エクセルファイルも同様のデータを使います。

基本

Year Month Day Data
2019 1 1 12
2019 2 1 14
2019 3 1 13
2019 4 1 12
2019 5 1 13
2019 6 1 11
2019 7 1 14
2019 8 1 12
2019 9 1 14
2019 10 1 14
2019 11 1 11
2019 12 1 15

 

df = pd.read_excel("XXX.xlsx")
df

シート名・インデックスを指定したい場合

sheet ="b"でインデックスをidxで指定する場合は、

f:id:RuntaScience:20200702112923p:plain

df = pd.read_excel("XXX.xlsx", sheet_name="b",index_col=0)
df

 

  Year Month Day Data
idx        
1 2019 1 1 12
2 2019 2 1 14
3 2019 3 1 13
4 2019 4 1 12
5 2019 5 1 13
6 2019 6 1 11
7 2019 7 1 14
8 2019 8 1 12
9 2019 9 1 14
10 2019 10 1 14
11 2019 11 1 11
12 2019 12 1 15

 

データの一部のみ使いたい

Year Month Day Data_x1 Data_x2 Data_y1 Data_y2
2019 1 1 12 12 12 12
2019 2 1 14 14 14 14
2019 3 1 13 13 13 13
2019 4 1 12 12 12 12
2019 5 1 13 13 13 13
2019 6 1 11 11 11 11
2019 7 1 14 14 14 14
2019 8 1 12 12 12 12
2019 9 1 14 14 14 14
2019 10 1 14 14 14 14
2019 11 1 11 11 11 11
2019 12 1 15 15 15 15
1)データを含む
include=["Data_x1"]
df = pd.read_excel("XXX.xlsx", sheet_name="c",usecols=include)
df
Data_x1
0 12
1 14
2 13
3 12
4 13
5 11
6 14
7 12
8 14
9 14
10 11
11 15
2)データを抜く

 exclude=["Data_x2", "Data_y2"] #抜く列 df = pd.read_excel("XXX.xlsx", sheet_name = "c",usecols = lambda x: x not in exclude) df
Year Month Day Data_x1 Data_y1
0 2019 1 1 12 12
1 2019 2 1 14 14
2 2019 3 1 13 13
3 2019 4 1 12 12
4 2019 5 1 13 13
5 2019 6 1 11 11
6 2019 7 1 14 14
7 2019 8 1 12 12
8 2019 9 1 14 14
9 2019 10 1 14 14
10 2019 11 1 11 11
11 2019 12 1 15 15

 

 

 3)header飛ばし
data:2019/1/1    
Site:Japan      
       
Year Month Day Data
2019 1 1 12
2019 2 1 14
2019 3 1 13
2019 4 1 12
2019 5 1 13
2019 6 1 11
2019 7 1 14
2019 8 1 12
2019 9 1 14
2019 10 1 14
2019 11 1 11
2019 12 1 15
df = pd.read_excel("XXX.xlsx", sheet_name = "a",header = 3)
df

 

Year Month Day Data
0 2019 1 1 12
1 2019 2 1 14
2 2019 3 1 13
3 2019 4 1 12
4 2019 5 1 13
5 2019 6 1 11
6 2019 7 1 14
7 2019 8 1 12
8 2019 9 1 14
9 2019 10 1 14
10 2019 11 1 11
11 2019 12 1 15

 

netCDFファイル

 まずはモジュールをインポート

from netCDF4 import Dataset

 

nc = Dataset("XXX.nc4", mode="r")
nc
<データの情報が出てくる>・・・・

 データの情報を基に、データをarrayにする。

data = nc.variables["dataname"][:].data #1次元データの場合
data
>>>array([100,120,122,111,92,222,…, 128, 100])

 

 それでは🌏