我可能做的事非常愚蠢,但我很难过.
我有一个数据框,我想替换特定列中超过零值的值.我原以为这是实现这个目标的一种方式:
df[df.my_channel > 20000].my_channel = 0
Run Code Online (Sandbox Code Playgroud)
如果我将频道复制到新的数据框中,那很简单:
df2 = df.my_channel
df2[df2 > 20000] = 0
Run Code Online (Sandbox Code Playgroud)
这正是我想要的,但似乎不能将频道作为原始数据帧的一部分.
我有以下数据帧:
user_id purchase_date
1 2015-01-23 14:05:21
2 2015-02-05 05:07:30
3 2015-02-18 17:08:51
4 2015-03-21 17:07:30
5 2015-03-11 18:32:56
6 2015-03-03 11:02:30
Run Code Online (Sandbox Code Playgroud)
并且purchase_date是一个datetime64[ns]专栏.我需要添加一个新列df[month],其中包含购买日期的第一天:
df['month']
2015-01-01
2015-02-01
2015-02-01
2015-03-01
2015-03-01
2015-03-01
Run Code Online (Sandbox Code Playgroud)
我正在寻找像DATE_FORMAT(purchase_date, "%Y-%m-01") mSQL 一样的东西.我试过以下代码:
df['month']=df['purchase_date'].apply(lambda x : x.replace(day=1))
Run Code Online (Sandbox Code Playgroud)
它以某种方式工作但返回:2015-01-01 14:05:21.