我刚才使用apply:
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)
答案 0 :(得分:1)
您需要稍微重新构建代码。 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