2021-03-09

官方
官方文档
中文版 http://api.unrealengine.com/CHN/
英文版 https://docs.unrealengine.com/en-us/
虚幻学院(英文教程,未来可能有汉化)
https://academy.unrealengine.com/

官方B站
https://space.bilibili.com/138827797/#/

C++
【侯捷】《C++系统工程师》课程
【吕鑫】【VS2015】C/C++/数据结构教程(推荐有选择的看)http://class.qq.com/class/22124.html
书籍推荐
《C++ Primer Plus》或《Essential C++》或《C++ Primer》
《大话数据结构》或《C++数据结构与算法(目前第4版)》
《Effective C++》
《More Effective C++》
《Effective STL》或《STL源码剖析》
《设计模式》、《游戏编程模式》
《C++沉思录》
《深度探索C++对象模型》
UE4教程
基础操作
【官方中文教程:4.15版本】基础操作教程 https://www.bilibili.com/video/av11692668
蓝图编程基础
蓝图编程简介
官方文档 http://api.unrealengine.com/CHN/Engine/Blueprints/GettingStarted/index.html
大神博客 https://www.cnblogs.com/ghl_carmack/p/5922131.html
蓝图的类型 注:此处的种类只说直接实现游戏逻辑的蓝图,动画蓝图等暂不谈
蓝图类 https://blog.youkuaiyun.com/niu2212035673/article/details/80207669
【猎梦虚幻研究社】 https://mp.weixin.qq.com/s/neCr4ttFIb6w9YZ45T4t3g
关卡蓝图 https://blog.youkuaiyun.com/niu2212035673/article/details/80204257
【猎梦虚幻研究社】 https://mp.weixin.qq.com/s/AAFbScqgIJKOEGFl03I2Xg
变量类型
官方文档 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Variables/index.html
大神博客 https://blog.youkuaiyun.com/niu2212035673/article/details/80148143
注意三种字符型变量:String、Text、Name(适当研究各自的性质及与其相关的操作节点)
三个最常会用到的复杂向量:Vector、Rotation、Transform(适当研究各自的性质及与其相关的操作节点)
UE4的组件
【官方文档】
蓝图中的组件 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Components/index.html
组建的种类 http://api.unrealengine.com/CHN/Engine/Components/index.html
【猎梦虚幻研究社】
https://mp.weixin.qq.com/s/HkBHFGM-wr4-mMW-IKVZfg
UE4的组件系统是学习自Unity引擎的,组件的引入让UE4引擎摆脱了UE3时代难以控制的代码耦合性
事件节点
【官方文档】基础事件节点 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Events/index.html
【官方文档】自定义事件 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Events/Custom/index.html
事件调度器(事件分配器)
【官方文档】事件调度器的使用
创建事件调度器 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/EventDispatcher/CreatingEvents/index.html
调用事件调度器 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/EventDispatcher/Calling/index.html
绑定及解除绑定事件 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/EventDispatcher/BindingAndUnbinding/index.html
使用示例 http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/EventDispatcher/index.html
【大神博客】事件调度器 https://blog.youkuaiyun.com/qq_36409711/article/details/76598715 https://blog.youkuaiyun.com/qq_14930205/article/details/78636014
事件分配器
【官方文档】 UE4的蓝图编程中,所有游戏逻辑的函数都需要通过事件来驱动,而自定义事件可以当做函数来驱动,同时也可以通过事件调度器进行驱动,通过事件调度器,可以让蓝图实现的游戏逻辑更加灵活
流程控制
【官方文档】 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/FlowControl/index.html
【大神博客】 https://blog.youkuaiyun.com/niu2212035673/article/details/80148329
流程控制节点,说到底也就是传统编程语言中的选择结构(switch-case、if-else等)和循环结构(for、while等),这些基础的函数结构,正是实现大部分游戏逻辑的核心
蓝图的函数
【官方文档】 函数简介 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Functions/index.html 函数调用 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Functions/FunctionCalls/index.html
【大神博客】 https://blog.youkuaiyun.com/niu2212035673/article/details/80202145
枚举类型
【蛮牛译馆】 http://www.manew.com/thread-100301-1-1.html
【大神博客】(包含部分关于结构体的操作) https://blog.youkuaiyun.com/niu2212035673/article/details/80155380
【猎梦虚幻研究社】 https://mp.weixin.qq.com/s/nhmJe9jmy8agrjfc84ABeQ
有关UE4Blueprint的枚举类型网上的资料并不多,因为大多数时候枚举类型都会被应用到AI/行为树和C++编程中
蓝图的数组
【官方文档】
数组简介 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Arrays/index.html
数组操作节点 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Arrays/ArrayNodes/index.html
【大神博客】
https://blog.youkuaiyun.com/qq_14930205/article/details/78541333
蓝图的结构体
【官方文档】
蓝图中现有的结构体 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Variables/Structs/index.html
【大神博客】 结构体的使用(包含部分关于枚举类型的操作)
https://blog.youkuaiyun.com/niu2212035673/article/details/80155380
【大神博客】结构体数组及多维数组
结构体及结构体数组 https://blog.youkuaiyun.com/qq_14930205/article/details/78541532
UE4的多维数组(用结构体实现)https://blog.youkuaiyun.com/qq_14930205/article/details/78541821
【猎梦虚幻研究社】
https://mp.weixin.qq.com/s/A_HmylXlCCh7wuA4GoViyA
HitResult
https://mp.weixin.qq.com/s/XcOe-5vFwoiAhuJzlk4EgA
蓝图的容器
Map
【官方文档】
Map简介 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Maps/index.html
Map操作节点 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Maps/MapNodes/index.html
Map使用示例 http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/WorkingWithMaps/index.html
Set
【官方文档】
Set简介 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Sets/index.html
Set操作节点 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Sets/SetNodes/index.html
Set使用示例 http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/WorkingWithSets/index.html
蓝图宏
【官方文档】
蓝图宏的简述 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Macros/index.html
使用宏库(可理解为全局函数库) http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/MacroLibraries/index.html
【大神博客】
https://blog.youkuaiyun.com/niu2212035673/article/details/80210904
Timeline(时间轴)
【官方文档】 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Timelines/index.html
Timeline是UE4引擎中非常强大且便捷的一个功能函数,它可以实现诸如开关门、视角平滑远近缩放等功能
随机流
【官方文档】 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/RandomStreams/index.html
随机这个功能很重要,几乎所有游戏的数值计算都会涉及到随机函数
数学表达式
UE4引擎的蓝图编程中有很多基础的数学表达式节点(如四则运算),且根据不同的操作变量适配有不同的节点,其中更允许开发者自定义一个数学表达式,灵活性非常强
【官方文档】 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/MathNode/index.html
蓝图的面向对象
构建脚本(蓝图相对于C++的构造函数)
https://mp.weixin.qq.com/s/PXx0L2CRMc7kb8DRRfWNMw
面向对象特性
继承
【大神博客】继承操作示例 https://blog.youkuaiyun.com/zach_here/article/details/70145300
多态
重写父类函数:在MyBlueprint栏的Function组上方,有一个Override菜单,下拉并选择要重写的函数,派生类中重写的函数会覆盖基类的函数
调用重写后的父类函数:右键重写后的函数节点,选择“Add call to parent function”选项
抽象
如果了解面向对象思想中的抽象概念,自主按照需求定制蓝图类即可
封装
蓝图类中的变量的细节面板中的“Instance Editable”如果打对号(或者MyBlueprint栏中让变量对应的眼睛睁开,即暴露蓝图变量),则当蓝图在关卡中被实例化后,可以通过实例的细节面板进行修改相应变量的值
蓝图类中的变量和函数在细节面板中都有Private选项,如果Private打钩,则该变量或函数无法被蓝图类的派生类继承
蓝图通信 注:蓝图通信可以理解为不同蓝图间的信息传递和共享
【官方文档】 蓝图通信方法(没有提GetAllActorOfClass)
http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/BlueprintCommsUsage/index.html
【大神博客】 https://www.cnblogs.com/songiveideas/p/learnmore2.html
1、直接蓝图
通信(蓝图引用)最直接的方式,但只有需要通信的类都在关卡中有实例时才可以使用【官方文档】http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/DirectBlueprintComs/index.html
2、事件调度器
参考上方“事件节点”
3、蓝图投射(CastTo节点)
很常用的蓝图通信实现节点之一,正如官方文档所说,先询问对象“你是否是该对象的特殊版本”,然后再进行通信【官方文档】http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/CastNodes/index.html
4、蓝图接口
这种实现方式相对有些复杂,但是某种程度上最不受限制,公众号【猎梦虚幻研究社】针对蓝图接口有几篇不错的文章,可以看看【官方文档】蓝图接口概述 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Types/Interface/index.html
实现蓝图接口 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/Types/Interface/UsingInterfaces/index.html
使用蓝图接口 http://api.unrealengine.com/CHN/Engine/Blueprints/BP_HowTo/Interfaces/index.html
蓝图接口迁移 http://api.unrealengine.com/CHN/Engine/Blueprints/UserGuide/BlueprintComms/InterfaceMigration/index.html
5、GetAllActorOfClass
这种方式并不能算是严格意义上的蓝图通信,其作用是通过该节点直接操作某一个类在关卡中所有的实例对象
视频教程
B站
虚幻引擎官方 https://space.bilibili.com/138827797/
灰太狼不吃羊肉 https://space.bilibili.com/298289600/
陶仁贤TRX https://space.bilibili.com/22866318/
杨一鸣 https://space.bilibili.com/19045234/
UE4-谌嘉诚 https://space.bilibili.com/31898841/
暂无名讳 https://space.bilibili.com/76555104/
来自程序员的暴击 https://space.bilibili.com/128373173/
人人素材
https://www.rrcg.cn/
ABOUTCG在线课堂
https://www.aboutcg.org/
SiKi学院
http://www.sikiedu.com/
————————————————
版权声明:本文为优快云博主「mogoolib」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/nmjkl001/article/details/100983916

<think>好的,用户现在的问题是关于如何在Pandas的DataFrame中为日期列命名,特别是提到“tdays”。让我先回顾一下之前的对话历史,看看有没有相关的信息可以借鉴。 用户之前提到了引用[1],其中有一段代码是关于创建DataFrame并设置列名和索引的。具体来说,用户展示了如何将数据提取到DataFrame中,并且将索引设置为日期数据。例如: import pandas as pd df = pd.DataFrame() df['GDP'] = data.Data[0] df.index = data.Timesdf 这里可以看到,用户使用df.index来设置索引,而索引可能是日期数据。不过用户的问题是关于如何为日期列命名,也就是将日期数据作为列而不是索引的情况。这时候可能需要指导用户如何将日期数据作为普通列,并为其命名。 用户提到的另一个引用是引用[2]和引用[3],其中涉及到处理日期和假期的函数,以及从Excel读取数据并处理日期格式的操作。例如,在引用[3]中,用户处理了日期字符串,替换了其中的字符,可能是为了转换成Pandas可识别的日期格式。这提示用户可能在处理外部数据时遇到日期格式的问题,需要正确解析并命名日期列。 另外,用户提供的引用[4]和引用[5]中,有使用Pandas读取Excel文件,并进行数据合并和计算的例子。例如,在引用[4]中,用户读取多个Excel文件,合并数据,并保存结果。这可能涉及到如何正确命名列,尤其是日期列,以便后续操作。 用户当前的问题是:“我想为给定的日期数据列命名以及可能涉及DataFrame操作 请问如何在pandas DataFrame中为日期列命名 tdays”。结合之前的引用,特别是引用[1]中的例子,用户可能已经有一个DataFrame,其中日期数据可能作为索引或者某个列,现在需要将其命名为“tdays”。 首先,需要确定用户的日期数据目前处于DataFrame中的什么位置。如果是作为索引,那么用户可能需要将其转换为列并命名。如果是作为现有列,可能需要重命名。或者,用户可能在读取数据时需要指定列名,比如从文件读取时没有列名,需要手动添加。 根据引用[1]中的例子,用户使用df.index = data.Timesdf将索引设置为日期数据。如果现在用户希望将日期作为列而不是索引,就需要先将索引重置为普通列,再进行命名。例如,使用df.reset_index(inplace=True)将索引转换为列,然后重命名该列为“tdays”。 另外,引用[3]中的MATLAB代码处理日期字符串,替换字符以便正确解析。这可能意味着用户的数据源中的日期格式需要调整,比如将“-”替换为“/”,或者去除空格。在Pandas中,读取数据时可能需要使用pd.to_datetime()来转换日期列,并确保格式正确。例如,如果日期列是字符串,用户需要先解析为日期类型,然后再命名列。 用户还可能遇到的情况是,从Excel或CSV文件读取数据时,日期列没有正确的列名,需要手动指定。例如,在引用[4]中,用户使用pd.read_excel时可能没有指定列名,导致默认的列名,需要后续重命名。 可能的步骤包括: 1. 读取数据时指定列名,如使用pd.read_csv或pd.read_excel的names参数。 2. 重命名现有列,使用df.rename(columns={'旧列名': 'tdays'}, inplace=True)。 3. 转换索引为列并命名,如果日期数据当前是索引的话。 4. 处理日期格式,确保正确解析。 需要提醒用户注意日期格式的问题,比如在读取数据时使用parse_dates参数,或者使用pd.to_datetime进行转换。同时,如果用户的数据中包含多个日期列,可能需要明确指定哪一列需要命名为“tdays”。 此外,用户提到的“tdays”可能与引用[2]中的自定义假期有关,可能需要将日期列正确命名后,用于后续的假期处理或时间序列分析。因此,正确的命名和格式转换是后续操作的基础。 总结,用户的需求可能包括: - 将现有的日期索引转换为列并命名为“tdays”。 - 重命名现有的日期列为“tdays”。 - 在读取数据时直接指定日期列的名称为“tdays”。 - 确保日期列的格式正确,以便进行后续的DataFrame操作。 需要根据用户的具体数据结构和处理步骤,提供相应的代码示例和解释,确保用户能够正确应用这些方法。同时,需要参考之前的引用中提到的代码,给出符合用户已有代码风格的解决方案,比如使用类似的变量名和结构。</think>在Pandas中为日期列命名并操作DataFrame,可参考以下方法(结合引用[1][4][5]的代码实践): --- ### 一、基础命名方法 ```python import pandas as pd # 创建带日期列的DataFrame(从引用[1]扩展) df = pd.DataFrame({ 'GDP': [23.7, 24.1, 25.3], # 数值数据列 'date_col': pd.date_range('2023-01-01', periods=3) # 待命名的日期列 }) # 重命名为tdays列(核心操作) df = df.rename(columns={'date_col': 'tdays'})[^1] ``` --- ### 二、读取数据时直接命名 结合引用[4]的Excel读取代码: ```python # 读取Excel时指定列名(假设原数据无表头) df = pd.read_excel(r"C:\path\to\file.xlsx", names=['tdays', 'value1', 'value2'], # 第一个位置设为tdays parse_dates=['tdays']) # 自动解析日期[^4] ``` --- ### 三、日期索引转命名列 若日期数据已在索引中(如引用[1]的`df.index = data.Times`): ```python # 将索引转为tdays列 df = df.reset_index().rename(columns={'index': 'tdays'}) ``` --- ### 四、时间序列操作验证 ```python # 验证是否为有效日期类型 df['tdays'] = pd.to_datetime(df['tdays']) # 强制转换日期格式 # 提取年月日(演示后续操作) df['year'] = df['tdays'].dt.year df['month'] = df['tdays'].dt.month_name() ``` --- ### 五、完整流程示例 结合引用[5]的包导入: ```python import pandas as pd from datetime import datetime # 生成测试数据 dates = [datetime(2023,1,1), datetime(2023,1,2), datetime(2023,1,3)] values = [100, 105, 98] # 创建并命名日期列 df = pd.DataFrame({'tdays': dates, 'price': values}) # 设置日期为索引(可选) df.set_index('tdays', inplace=True)[^1] ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值