本文介绍了ValueError:对象类型< class'pandas.core.frame.DataFrame'>没有名为node2的轴.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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())
我得到的错误-
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'>
我已在数据中定义了列'node2',但错误仍然是node2没有轴.这似乎是什么问题?
I have defined column 'node2' in data but still the error is saying no axis with node2.What seems to be the problem?
推荐答案
您需要在groupby
中的[]
:
.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
这篇关于ValueError:对象类型< class'pandas.core.frame.DataFrame'>没有名为node2的轴.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!