pandas - 从值数组创建一个新的数据框
问题描述
0 {'not_needed': 'not_needed', 'needed': ['', 'PPP', 8.414448]}
1 {'not_needed': 'not_needed', 'needed': ['', 'FFF', 7.414448]}
只是用熊猫学习,我以某种方式解析了这样的复杂数据。但是,我们如何通过忽略第一个空字符串值并仅使用名为&needed
的 2 个新 pandas 列中的其他 2 个值,从键的数组值创建一个新的 pandas 数据框?name
value
预期输出(带编号索引的两列)
0 {'name': 'PPP', 'value': 8.414448}
1 {'name': 'FFF', 'value': 7.414448}
解决方案
假设您Series
有常规模式,即所有行都具有相同的 dict 键,并且您正在触及的嵌套级别:
ds1 = ds.str["needed"].str[1:]
ds2 = pd.DataFrame(ds1.to_list(), columns = ["name", "value"])
ds3 = pd.Series(ds2.to_dict("record"))
对于pd.Series
格式输入:
import pandas as pd
ds = pd.Series([{'not_needed': 'not_needed', 'needed': ['', 'PPP', 8.414448]},
{'not_needed': 'not_needed', 'needed': ['', 'FFF', 7.414448]}])
现在解释一下步骤:
ds1
list
- 与或在行dict
中交互的方式pandas
是调用.str[key]
wherekey
可以是dict
键或list
引用。
ds2
- 是ds1
使用预定义名称分成列的方法。
ds3
-to_dict("record")
将您的数据框转换为列表,其中每一行由格式的单个条目表示{column1_name: column1_value_rowN, column2_name: column2_value_rowN, ...}
推荐阅读
- python - Python 代码有时会被执行,有时不会
- javascript - 用于捕获嵌套括号中的值的正则表达式
- angular - mat-cell如何绑定源给mat-table
- c# - 使用 .Net Core 在 Linux 中读取另一个进程的内存
- google-cloud-platform - GCP:云 NAT:为什么附加到云 NAT 的区域 IP 地址被标记为“未使用”?
- javascript - 如何从 redux 存储中的数组中删除特定元素
- unit-testing - 如何修复这些错误而不是在 qarsar 测试中用 jest 导入某些模块?
- reactjs - 类型“{}”上不存在属性“schProd”| { schProd:字符串;}'
- python-3.x - 我无法在 alpine 上使用 pip3 安装 python 包
- angular - 如何创建一个可以从具有不同参数的不同组件调用的通用角度 ng2-charts(条形图)组件