在对象上调用函数并同时将返回值分配给同一对象

时间:2018-01-04 15:26:52

标签: python pandas

假设我想使用以下内容将一系列日期字符串转换为dataframe.loc[:, 'DATE']

>>> pd.to_datetime(dataframe.loc[:,'DATE'], +)

现在,我认为dataframe.loc[:,'DATE'] += pd.to_datetime() 是多余的。我可以在python中调用对象上的函数并同时将返回值分配给同一个对象吗?

看起来像:

+

{{1}}

其中{{1}}(或其他)将函数的返回值分配给第一个参数

这个问题可能是由于我对编程语言的编写/功能缺乏了解,所以请保持温和。

2 个答案:

答案 0 :(得分:2)

没有这样的事情。但你可以通过以下方式实现同​​样的目标:

name = 'DATE'
dataframe[name] = pd.to_datetime(dataframe[name])

无需.loc

某些方法支持inplace=True关键字参数。 例如,对数据框进行排序会为您提供新的数据:

>>> df = pd.DataFrame({'DATE': [10, 7, 1, 2, 3]})
>>> df.sort_values()
>>> df.sort_values('DATE')
   DATE
2     1
3     2
4     3
1     7
0    10

原件保持不变:

>>> df
   DATE
0    10
1     7
2     1
3     2
4     3

设置inplace=True,修改原始df

>>> df.sort_values('DATE', inplace=True)
>>> df
   DATE
2     1
3     2
4     3
1     7
0    10

答案 1 :(得分:1)

最近的Pandas到达这个地方就是" inplace"存在大量DataFrame函数的命令。

例如,一个就地日期时间操作碰巧隐藏在新的set_index功能中。

df.set_index(df['Date'], inplace=True)