假设我想使用以下方法将一系列日期字符串转换为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)