首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改python中特定列的数据类型

修改python中特定列的数据类型
EN

Stack Overflow用户
提问于 2020-03-18 11:28:56
回答 1查看 44关注 0票数 0

我遇到了一个问题,我只需要更改我的dataframe头的部分列的数据类型。

我的标题如下所示:

‘名称’经理‘评审经理’3-2月3日-20日‘10’-2月20日‘’17‘2月17日-20日’24‘-2月20日’2‘2-3月-20’9-3月20‘16-3月20’23‘23-3月-20’30-3月20日-20日

我只想更改作为日期出现的标题值的数据类型:“3-2月-20‘10-2月10-20’17-2月20‘24’-2月-20‘2-3月-20’16-3月-20‘23-3月-20’30‘-3月-20’30‘-20’

我不想只将1-3列的标题从第4列更改为最后一列.

我所尝试的如下:

代码语言:javascript
复制
df2 = pd.read_excel(r'C:\Tracker.xlsx', skiprows=range(1,6), sheet_name='Status', header=[1])

我知道我可以将列的数据类型更改为:

代码语言:javascript
复制
df.column_name = df.column_name.astype(datatype)

  1. ,但是如何更改列的数据类型,它们本身就是“日期”?我如何引用date列?
  2. 还如何查找dataframe中的最后一列?我希望将所有日期列的数据类型从第4列更改为最后一列。在openpyxl中,我们可以使用

代码语言:javascript
复制
    wb = openpyxl.load_workbook(r'C:\Tracker.xlsx')
    ws = wb.active 
    column = ws.max_column
    row = ws.max_row
EN

回答 1

Stack Overflow用户

发布于 2020-03-18 12:45:19

若要使用df.columns.astype(newtype)更改列名日期类型,请执行以下操作。见下面的例子。

在此excel文件中,前2个列名是字符串,接下来的4个列名是日期值。

代码语言:javascript
复制
df = pd.read_excel('text.xlsx')
print([(col, type(col)) for col in df.columns])

输出:

代码语言:javascript
复制
[('col0', <class 'str'>), ('col1', <class 'str'>), (datetime.datetime(2017, 7, 9, 0, 0), <class 'datetime.datetime'>), (datetime.datetime(2017, 7, 10, 0, 0), <class 'datetime.datetime'>), (datetime.datetime(2017, 7, 11, 0, 0), <class 'datetime.datetime'>), (datetime.datetime(2017, 7, 13, 0, 0), <class 'datetime.datetime'>)]

将列名的数据类型转换为str

代码语言:javascript
复制
df.columns = df.columns.astype(str)
print([(col, type(col)) for col in df.columns])

输出:

代码语言:javascript
复制
[('col0', <class 'str'>), ('col1', <class 'str'>), ('2017-07-09 00:00:00', <class 'str'>), ('2017-07-10 00:00:00', <class 'str'>), ('2017-07-11 00:00:00', <class 'str'>), ('2017-07-13 00:00:00', <class 'str'>)]

您可以看到,所有列名、数据类型现在都是str

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60738580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档