我有一个传递DataFrame并使用df.columns属性的函数。但是,当它传递一个只有一列(系列)的DataFrame时会中断,因为一个系列没有该属性。
是否有一个属性适用于系列和数据框,它们等同于DataFrame的df.columns?我看过了,但鉴于在DataFrame文档(http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html)中甚至没有显示columns属性,我认为可能会有一些部落知识形式的解决方案。
答案 0 :(得分:0)
对系列文章使用.name
,我只是测试传递的对象的type
,并根据需要调用.columns
或.name
:
In [242]:
df = pd.DataFrame(columns=list('abc'))
df
Out[242]:
Empty DataFrame
Columns: [a, b, c]
Index: []
In [243]:
df['a'].name
Out[243]:
'a'
像这样:
In [245]:
def func(x):
if type(x) is pd.DataFrame:
print( x.columns)
elif type(x) is pd.Series:
print( x.name)
print(func(df))
print(func(df['a']))
Index(['a', 'b', 'c'], dtype='object')
None
a
None