首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Pandas dataframe转换为带空格的字典重命名列标题

将Pandas dataframe转换为带空格的字典重命名列标题
EN

Stack Overflow用户
提问于 2019-01-29 03:22:55
回答 1查看 915关注 0票数 1

我已经注意到,使用to_dict()方法转换Pandas会导致列名,其中包含要在生成的字典键中重命名的空格。首先,让我明确一点,我知道故意在dataframe列名中添加空格是很糟糕的做法。我的用例涉及通过dash-tabledata属性更新它,该属性根据它在静态HTML布局中指定的预定义列名填充数据表(列标题不需要动态更新,因为它们的顺序不依赖于任何回调)。以以下示例数据为例:

代码语言:javascript
复制
import pandas as pd

df = pd.DataFrame({'Distance (ft)': [1, 2, 3, 4, 5],
    'City': ['Seattle','Portland','Spokane','Everett','Tacoma'],
    'Temp (F)': [10, 20, 30, 40, 50]})

产量:

代码语言:javascript
复制
   Distance (ft)      City  Temp (F)
0              1   Seattle        10
1              2  Portland        20
2              3   Spokane        30
3              4   Everett        40
4              5    Tacoma        50

当我试图使用df.to_dict() ( orient='dict'的默认值)转换此数据时,我将返回我期望的内容:

代码语言:javascript
复制
{'Distance (ft)': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}, 'City': {0: 'Seattle', 1: 'Portland', 2: 'Spokane', 3: 'Everett', 4: 'Tacoma'}, 'Temp (F)': {0: 10, 1: 20, 2: 30, 3: 40, 4: 50}}

但是,使用orient的替代参数,如:

代码语言:javascript
复制
df.to_dict('records')
df.to_dict('rows')

两人均返回:

代码语言:javascript
复制
[{'_0': 1, 'City': 'Seattle', '_2': 10}, {'_0': 2, 'City': 'Portland', '_2': 20}, {'_0': 3, 'City': 'Spokane', '_2': 30}, {'_0': 4, 'City': 'Everett', '_2': 40}, {'_0': 5, 'City': 'Tacoma', '_2': 50}]

是否可以在不执行所需列名和输出字典键之间的中间映射的情况下返回以下内容?

代码语言:javascript
复制
[{'Distance (ft)': 1, 'City': 'Seattle', 'Temp (F)': 10}, {'Distance (ft)': 2, 'City': 'Portland', 'Temp (F)': 20}, {'Distance (ft)': 3, 'City': 'Spokane', 'Temp (F)': 30}, {'Distance (ft)': 4, 'City': 'Everett', 'Temp (F)': 40}, {'Distance (ft)': 5, 'City': 'Tacoma', 'Temp (F)': 50}]
EN

Stack Overflow用户

回答已采纳

发布于 2019-01-29 03:33:10

这是可以做到的

代码语言:javascript
复制
[y.iloc[0,:].to_dict() for x , y in df.groupby(level=0)]
[{'City': 'Seattle', 'Distance (ft)': 1, 'Temp (F)': 10}, {'City': 'Portland', 'Distance (ft)': 2, 'Temp (F)': 20}, {'City': 'Spokane', 'Distance (ft)': 3, 'Temp (F)': 30}, {'City': 'Everett', 'Distance (ft)': 4, 'Temp (F)': 40}, {'City': 'Tacoma', 'Distance (ft)': 5, 'Temp (F)': 50}]
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54413392

复制
相关文章

相似问题

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