python - 使用组合字符串和列表作为列标题构建新的 Pandas 数据框
问题描述
我正在尝试在 Pandas 中构建一个新的数据框。生成的数据框需要将部门作为顶部的索引和日期范围。到目前为止,我有以下内容:
#generate a list of years within report range
timeframes_yrs = pd.date_range(start_date,end_date, freq='12MS').strftime('%m/%d/%Y').tolist()
#create a new dataframe with columns named after the output of the list
df=pd.DataFrame(columns=['department', list(timeframes_yrs)])
这似乎为部门创建了一个列(如预期的那样),但随后提供了一个包含我的整个列表的列。
Empty DataFrame
Columns: [department, [01/01/2017, 01/01/2018, 01/01/2019]]
理想情况下,我希望每一个都是列:
Empty DataFrame
Columns: [department, 01/01/2017, 01/01/2018, 01/01/2019]
我尝试将“部门”一词设置为变量并将其传递给相同的结果。我也尝试过调整语法(括号、括号等),但没有成功。
我的问题是 - 我是否需要通过“For”循环或先添加列表然后再添加附加列来完成此操作,或者有没有办法通过在创建时将字符串和列表传递到 Pandas 数据框来完成此操作“列”。
解决方案
使用 解压缩包含日期范围的可迭代对象*
,即iterable unpacking operator
df = pd.DataFrame(columns=['department', *timeframes_yrs])
Columns: [department, 01/01/2017, 01/01/2018, 01/01/2019]
推荐阅读
- cordova - 无法运行浏览器平台。错误:url.URL 不是构造函数
- python - BlockingIOError: [Errno 35] 资源暂时不可用
- azure-devops - 尝试为两个表添加聚合时,请求因资源使用过多而被阻止,每个表中约有 500 个工作项
- networkx - 将单词列表转换为最小生成树算法的问题图
- c# - 使用 Azure Function 查找空闲虚拟机并释放它们
- php - SilverStripe 从数组创建 DataObject 始终显示标题字段的“#”/哈希
- java - gitlab API gitlab4j Java 更改默认分支
- mongodb - 如何在 mongodb 中对聚合中的 $limit 没有限制?
- influxdb - 连接到 InfluxDB 的远程连接被拒绝
- javascript - 在另一个变量中显示数组中可用的所有索引位置?