2017-02-04 6 views
0

私は形式のデータを持っている:年パンダのデータフレームを検索して別のデータフレームを埋める方法はありますか?

President    Years Executive Orders 
George Washington 1789-1797  8 
John Adams   1797-1801  1 
Thomas Jefferson 1801-1809  4 
       ... 

は、文字列の形式であると私はを通じて行政命令のプロットを作成することができるように、私は毎年が以下のようにリサンプリングされた新しいデータフレームを作成したいです年(データは、例えば1801年から1809年の間でデータを与えるものではありませんので、私は補間ます):

Year Executive Orders 
1789   8 
1790   0 
1791   0 
... 

基本的に私が第一のdfに第二DFに日付の検索のようにやってみたいですどれくらいの注文を見るか。何か案は?

おかげ

答えて

0
import pandas as pd 
import numpy as np 
from io import StringIO 

data = '''\ 
President    Years Executive Orders 
George Washington 1789-1797  8 
John Adams   1797-1801  1 
Thomas Jefferson 1801-1809  4 
''' 
df = pd.read_csv(StringIO(data), sep=r'\s+') 

df[['From', 'To']] = df['Executive'].str.split('-', expand=True) 
df['From'] = pd.to_datetime(df['From']) 
df['To'] = pd.to_datetime(df['To']) 

df_orders = df[['Orders', 'From']].set_index('From') 

インデックス列が必要に応じてカラムresampleデータをリサンプリングするために使用することができる日付であるので、これは、次のデータフレーム

  Orders 
From    
1789-01-01  8 
1797-01-01  1 
1801-01-01  4 

もたらします。データの再サンプリング方法についてはdocsをご覧ください。

df_orders_resampled = df_orders.resample('AS').sum().fillna(0) 

      Orders 
From    
1789-01-01  8.0 
1790-01-01  0.0 
1791-01-01  0.0 
1792-01-01  0.0 
1793-01-01  0.0 
1794-01-01  0.0 
1795-01-01  0.0 
1796-01-01  0.0 
1797-01-01  1.0 
1798-01-01  0.0 
1799-01-01  0.0 
1800-01-01  0.0 
1801-01-01  4.0 

df_orders_resampled.plot() 

plot

関連する問題