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



假设我想使用以下方法将一系列日期字符串转换为datetime

>>> import pandas as pd
>>> dataframe.loc[:, 'DATE'] = pd.to_datetime(dataframe.loc[:, 'DATE'])

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

看起来像这样的东西:

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

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

其中+(或其他什么(将函数的返回分配给其第一个参数

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

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

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

Pandas 最接近这一点的是临时的"就地"命令,它存在于大部分数据帧函数中。

例如,就地日期时间操作恰好隐藏在新的set_index功能中。

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

最新更新