将函数应用于数据框
apply a function to dataframe
我刚开始使用申请:
import pandas
df=pandas.DataFrame({"k1":['2017-03-07','2017-02-07','2017-01-15'],
"k2":[1,2,3],})
我想获取匹配某月的数据。例如:我想得到月份 == 2:
df[pandas.to_datetime(df.k1).dt.month == 2]
但是我想写一个函数,有一个参数可以匹配月份。
这是我的职能。没用。
def get_month(df, mon=1):
return df[pandas.to_datetime(df.k1).dt.month == mon]
df.apply(get_month)
您需要稍微重构一下代码。 apply
每行工作。
代码:
def get_month(mon):
return lambda x: pandas.to_datetime(x.k1).month == mon
测试代码:
df = pandas.DataFrame({"k1": ['2017-03-07', '2017-02-07', '2017-01-15'],
"k2": [1, 2, 3], })
print(df[df.apply(get_month(1), axis=1)])
结果:
k1 k2
2 2017-01-15 3
我刚开始使用申请:
import pandas
df=pandas.DataFrame({"k1":['2017-03-07','2017-02-07','2017-01-15'],
"k2":[1,2,3],})
我想获取匹配某月的数据。例如:我想得到月份 == 2:
df[pandas.to_datetime(df.k1).dt.month == 2]
但是我想写一个函数,有一个参数可以匹配月份。 这是我的职能。没用。
def get_month(df, mon=1):
return df[pandas.to_datetime(df.k1).dt.month == mon]
df.apply(get_month)
您需要稍微重构一下代码。 apply
每行工作。
代码:
def get_month(mon):
return lambda x: pandas.to_datetime(x.k1).month == mon
测试代码:
df = pandas.DataFrame({"k1": ['2017-03-07', '2017-02-07', '2017-01-15'],
"k2": [1, 2, 3], })
print(df[df.apply(get_month(1), axis=1)])
结果:
k1 k2
2 2017-01-15 3