2017-12-11 4 views
0
import pandas as pd 
import numpy as np 
from datetime import datetime 

data = {'date': ['1998-03-01 00:00:01', '2001-04-01 00:00:01','1998-06-01 00:00:01','2001-08-01 00:00:01','2001-05-03 00:00:01','1994-03-01 00:00:01'], 
     'node1': [1, 1, 2,2,3,2], 
    'node2': [8,316,26,35,44,56], 
    'weight': [1,1,1,1,1,1], } 

df2 = pd.DataFrame(data, columns = ['date', 'node1','node2','weight']) 


df2['date'] = pd.to_datetime(df2['date']) 

l1 = [1990,1991,1992,1993,1994,1995,1996,1997,1998] 
l2 = [1999,2000,2001] 
ndf = df2[df2['date'].dt.year.isin(l1+l2)] 

mask = ndf.groupby('node1','node2').apply(lambda x : (x['date'].dt.year.isin(l1)).any()) 
mask2 = ndf.groupby('node1','node2').apply(lambda x : (x['date'].dt.year.isin(l2)).any()) 

ためnode2のエラーという名前の軸私はgetting-とValueError:私は、データの列 'ノード2' を定義したオブジェクトタイプ<クラスのpandas.core.frame.DataFrame '>

Traceback (most recent call last): 
    File "datanew.py", line 32, in <module> 
    mask = ndf.groupby('node1','node2').apply(lambda x : (x['date'].dt.year.isin(l1)).any()) 
    File "C:\Python27\lib\site-packages\pandas\core\generic.py", line 5159, in groupby 
    axis = self._get_axis_number(axis) 
    File "C:\Python27\lib\site-packages\pandas\core\generic.py", line 357, in _get_axis_number 
    .format(axis, type(self))) 
ValueError: No axis named node2 for object type <class 'pandas.core.frame.DataFrame'> 

ていますが、それでもエラーはノード2の軸がないと言っています。問題があるようですか?

答えて

1

あなたはgroupby[]必要があります:私はこの-nndf = NDF [NDF [ 'ノード1'、 'ノード2']を行うと、サー

.groupby(['node1','node2']) 

mask = ndf.groupby(['node1','node2']).apply(lambda x : (x['date'].dt.year.isin(l1)).any()) 
print (mask) 
node1 node2 
1  8   True 
     316  False 
2  26  True 
     35  False 
     56  True 
3  44  False 
dtype: bool 

mask2 = ndf.groupby(['node1','node2']).apply(lambda x : (x['date'].dt.year.isin(l2)).any()) 
print (mask2) 
node1 node2 
1  8  False 
     316  True 
2  26  False 
     35  True 
     56  False 
3  44  True 
dtype: bool 
+0

をISIN(マスク[マスク&マスク2。 (node1 '、' node2 ')]が必要です。isin(mask [mask](mask []).index)] KeyErrorを取得しました。(' node1 '、' node2 ') –

+0

'[]' '' 'nndf = ndf [ndf [ &mask2] .index)] ' – jezrael

+0

ありがとうございました! –

関連する問題