2017-02-04 14 views
0

私はPythonの初心者です。プロットを使ってPythonを学びたいと思っています。ExcelファイルからPythonの2つの変数をプロットする

someomeは私が2つの変数(速度、および方向)でExcelファイルをプロットするためのスクリプトを書くことができます場合、私は本当に感謝以下:

Date   Velocity Direction 
3/12/2011 0:00 1.0964352 10 
3/12/2011 0:30 1.1184975 15 
3/12/2011 1:00 0.48979592 20 
3/12/2011 1:30 0.13188942 45 

答えて

1

import pandas as pd 
from io import StringIO 

data = '''\ 
Date   Velocity Direction 
3/12/2011 0:00 1.0964352 10 
3/12/2011 0:30 1.1184975 15 
3/12/2011 1:00 0.48979592 20 
3/12/2011 1:30 0.13188942 45 
''' 
df = pd.read_csv(StringIO(data), sep=r'\s{2,}', parse_dates=[0], dayfirst=True) 

データを準備する私はここでトリックを使用してください。 Date列の日付には空白で区切られた時間要素が含まれているため、2つ以上の空白で列を区切ります。これは私が正規表現としてセパレータを与える理由ですsep=r'\s{2,}'。しかし、もちろんCSVの列は通常、カンマで区切られているため、作業が簡単になります(デフォルト設定のsep=',')。

Dateの列は日付として解析されています。列のタイプはdatetime64です。インデックスはデータをプロットとしてDate列を設定することにより

df.info() 

<class 'pandas.core.frame.DataFrame'> 
RangeIndex: 4 entries, 0 to 3 
Data columns (total 3 columns): 
Date   4 non-null datetime64[ns] 
Velocity  4 non-null float64 
Direction 4 non-null int64 
dtypes: datetime64[ns](1), float64(1), int64(1) 
memory usage: 176.0 bytes 

は単純である:

df.set_index('Date').plot() 

これは、両方の速度および方向は、各タイムスタンプについてプロットされたラインプロットをもたらすであろう。

Plot

+0

インポートを追加すると、わかりやすくなります。 – gregory

+0

@gregoryヒントをありがとう。私はそれらを追加しました。 – dotcs

+0

ありがとうございました。しかし、私はエラーが発生しました:df = pd.read_csv(StringIO(data)、sep = r '\ s {2、}'、parse_dates = [0]、dayfirst = True)なぜか分かりますか? TypeError:initial_valueはunicodeまたはNoneでなければなりません。 – Barack

関連する問題