相关疑难解决方法(0)

在pandas DataFrame中设置新列的正确方法是为了避免SettingWithCopyWarning

试图在netc df中创建一个新列,但我收到了警告

netc["DeltaAMPP"] = netc.LOAD_AM - netc.VPP12_AM

C:\Anaconda\lib\site-packages\ipykernel\__main__.py:1: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
Run Code Online (Sandbox Code Playgroud)

在新版本的Pandas中创建一个字段的正确方法是什么,以避免收到警告?

pd.__version__
Out[45]:
u'0.19.2+0.g825876c.dirty'
Run Code Online (Sandbox Code Playgroud)

python pandas

18
推荐指数
4
解决办法
7383
查看次数

从 pandas DataFrame 中的日期时间列中提取月份

我有一个从 Excel 读取的 DataFrame,其中包含 DateTime 类型的列之一。

sales_data=pandas.read_excel(r'Sample Sales Data.xlsx')
Run Code Online (Sandbox Code Playgroud)

我能够使用 str.extract/lambda 函数从其他列中提取子字符串。但我无法处理“订单日期”列

该命令sales_data['Order Date']给出以下输出

在此输入图像描述

正如其他StackOverflow问题中所建议的那样,我尝试过

sales_data['Order Date'].apply(lambda x:x.str.slice())
Run Code Online (Sandbox Code Playgroud)

我收到错误: AttributeError: 'datetime.datetime' object has no attribute 'str' 要检查订单日期列的类型,我尝试了

sales_data['Order Date'].apply(lambda x:type(x))
Run Code Online (Sandbox Code Playgroud)

我得到了 datetime.datetime 类型在此输入图像描述 但是当我尝试日期时间操作时

sales_data['Order Date'].apply(lambda x:x.strftime("m"))
Run Code Online (Sandbox Code Playgroud)

我收到错误: AttributeError: 'int' object has no attribute 'strftime' 我收到了类似的命令错误

sales_data['Order Date'].apply(lambda x:x.dt.month)
Run Code Online (Sandbox Code Playgroud)

请建议一种方法,将日期时间对象中的月份提取到另一列中,而无需迭代数据帧。我无法对此列使用 datetime 或 int 函数,因为它同时充当 datetime 和 int 列。

python lambda datetime dataframe pandas

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

pandas ×2

python ×2

dataframe ×1

datetime ×1

lambda ×1