如何将含字典的Numpy数组转换为列名自动生成的Pandas DataFrame
解决方案
这事儿其实超简单,Pandas天生就支持把字典列表(哪怕是Numpy数组包裹的字典集合)直接转换成DataFrame,而且会自动提取字典里的键作为列名,完美适配你“列名随输入自动变化”的需求!
完整代码示例
import pandas as pd # 你的原始数据(如果是Numpy数组,比如data = np.array([...]),转换逻辑完全一样) data = [{'DateTime': '2020-03-13T16:44:58-03:00', 'Hl': 81.5, 'Bl': 82.5}, {'DateTime': '2020-03-13T16:44:58-03:00', 'Hl': 87.7, 'Bl': 2.94}] # 核心一步:直接转成DataFrame,列名自动从字典键生成 df = pd.DataFrame(data) # 调整索引从1开始(默认索引是0开头,这里做个小修改) df.index = df.index + 1 # 给索引列命名为"Index",和你要的格式匹配 df.index.name = 'Index' # 输出看看结果 print(df)
代码解释
- 自动生成列名:
pd.DataFrame(data)会自动遍历所有字典的键,把所有出现过的键作为DataFrame的列名——哪怕不同字典的键有差异(比如有的字典多一列、有的少一列),Pandas都会自动补全缺失值为NaN,完全不用你手动指定列名。 - 自定义索引:默认的DataFrame索引是从0开始的,我们通过
df.index = df.index + 1把索引改成从1开始,再用df.index.name = 'Index'给索引列加上名称,就完全匹配你想要的格式了。
运行这段代码后,你得到的DataFrame就是你想要的样子:
DateTime Hl Bl Index 1 2020-03-13T16:44:58-03:00 81.5 82.5 2 2020-03-13T16:44:58-03:00 87.7 2.94
内容的提问来源于stack exchange,提问作者sjobyt
相关产品推荐
相关产品推荐

