如何将天数时间列转换为天数列及提取TRM_LENGTH列中的天数
解决方案:提取天数数值并转换列
我来帮你搞定这两个问题,分几种常用的数据分析/数据库工具场景来说明,这样不管你用哪种工具都能快速解决:
一、从TRM_LENGTH列提取天数数值(格式示例:365 days 05:49:12.000000000)
1. SQL(以PostgreSQL为例)
如果你的TRM_LENGTH是INTERVAL类型(数据库中存储时间间隔的常用类型),直接用内置函数提取天数:
SELECT EXTRACT(DAY FROM TRM_LENGTH) AS days_only FROM your_table_name;
如果列是字符串类型,就通过字符串分割提取空格前的数字部分,再转成整数:
SELECT CAST(SPLIT_PART(TRM_LENGTH, ' ', 1) AS INTEGER) AS days_only FROM your_table_name;
2. Python Pandas
如果用Pandas处理数据集:
- 若列是timedelta类型(Pandas中存储时间间隔的类型):
import pandas as pd df['days_only'] = df['TRM_LENGTH'].dt.days
- 若列是字符串类型:
# 按空格分割字符串,取第一部分并转换为整数 df['days_only'] = df['TRM_LENGTH'].str.split(' ', expand=True)[0].astype(int)
3. Excel/Google Sheets
在表格工具里,用文本函数提取数字部分:
=LEFT(A2, FIND(" ", A2)-1)
输入公式后,记得把单元格格式改成「数值」类型,就能得到纯天数的数值了。
二、将包含天数与时间的列转换为仅包含天数的列
这个需求本质是把原列替换成提取后的天数数值,或者生成新列,核心逻辑和上面的提取一致:
1. SQL场景
如果是INTERVAL类型列,直接新增并更新天数列:
-- 新增天数列 ALTER TABLE your_table_name ADD COLUMN days_only INTEGER; -- 填充天数数值 UPDATE your_table_name SET days_only = EXTRACT(DAY FROM TRM_LENGTH);
如果是字符串类型,用分割后的结果更新:
ALTER TABLE your_table_name ADD COLUMN days_only INTEGER; UPDATE your_table_name SET days_only = CAST(SPLIT_PART(TRM_LENGTH, ' ', 1) AS INTEGER);
2. Pandas场景
直接替换原列或者生成新列都可以:
# 替换原列(timedelta类型) df['TRM_LENGTH'] = df['TRM_LENGTH'].dt.days # 替换原列(字符串类型) df['TRM_LENGTH'] = df['TRM_LENGTH'].str.split(' ', expand=True)[0].astype(int)
3. Power Query(Excel/BI工具)
在Power Query编辑器中:
- 选中目标列,点击「拆分列」→「按分隔符」,选择空格,设置拆分方式为「拆分为最左侧的列」
- 选中拆分后的列,点击「数据类型」→「整数」,最后加载回表格即可
内容的提问来源于stack exchange,提问作者Avinash Reddy Kovvuri
相关产品推荐
相关产品推荐

