如何将一系列函数作为参数应用于pandas列

时间:2016-02-17 23:53:59

标签: python function pandas lambda

我想创建一个基本上执行以下操作的函数:

def displayDetails(dataframe,column):
    dataframe.column.describe()
    dataframe.column.value_counts.display(kind='bar')

这样我就可以displayDetails(someDataFrame,someColumn)()

如何应用适用于系列的describecount等方法而不是系列中的每个元素?

我试过了:

def displayDetailsDummy(para):
    para.upper()
df4['Clinic_ID'].map(displayDetailsDummy)

生成输出:

000103f8-7f48-4afd-b532-8e6c1028d965    None
00021ec5-9945-47f7-bfda-59cf8918f10b    None
0002510f-fb89-11e3-a6eb-742f68319ca7    None
00025550-9a97-44a4-84d9-1f6f7741f973    None

此输出不正确。

另一种方法是:

df4['Clinic_ID'].map(displayDetailsDummy)
test = map(vis, df4['Clinic_ID'])
print test

这个有效:

[u'43E75091BE4CA5FF8182A9D45FD654E0', u'E2A62C2E0EB48FA046B6407DBE633856', u'4001', u'43E75091BE4CA5FF8182A9D45FD63870', u'05015141289349B8BC84533C7B489114']

但是,将其用于value_countsdescribe会引发错误。

1 个答案:

答案 0 :(得分:0)

解决了它:

def displayDetails(df_name,col_name):
    print df_name[col_name].describe()
    df_name[col_name].value_counts().plot(kind='bar')

displayDetails(dataFrameName,'Column_Name')