我刚开始使用 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)
您需要稍微重组您的代码。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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句