3
我有以下数据集从json文件:
mydf = pd.DataFrame({
'load': {
0: {'id': '100','name': 'Joe'}, 1: {'id': '101','name': 'Ann'},
2: {'id': '102','name': 'Sue'}, 3: {'id': '103','name': 'Leo'}},
'order_date': {0: '2019-04-01', 1: '2019-04-01', 2: '2019-04-02', 3: '2019-04-03'},
'detail': {
0: [{'product_gross_total': 980,'unitary_gross_price': 490,
'hierarchy_name': 'FOOD','payment': [{'amount': 980.0, 'id': 124}],
'product_id': '230','product_name': 'APPLE','quantity': 2}],
1: [{'product_gross_total': 1900,'unitary_gross_price': 1900,
'hierarchy_name': 'MISC','payment': [{'amount': 1900.0, 'id': 125}],
'product_id': '96','product_name': 'CIGAR','quantity': 1}],
2: [{'product_gross_total': 600,'unitary_gross_price': 200,
'hierarchy_name': 'FOOD','payment': [{'amount': 600.0, 'id': 126}],
'product_id': '240','product_name': 'GRAPE','quantity': 3}],
3: [{'product_gross_total': 1400,'unitary_gross_price': 700,
'hierarchy_name': 'MISC','payment': [{'amount': 1400.0, 'id': 132}],
'product_id': '78','product_name': 'QUMASK','quantity': 2},
{'product_gross_total': 1800,'unitary_gross_price': 900,
'hierarchy_name': 'MISC','payment': [{'amount': 1800.0, 'id': 132}],
'product_id': '71','product_name': 'CANDLE','quantity': 2}]
}})
我想将字典转换成列,但是对于列'detail'内的列表中的每个元素,我希望每个产品都有一行。这是预期的结果:
order_date id name product_gross_total unitary_gross_price hierarchy_name product_id product_name quantity
0 2019-04-01 100 Joe 980 490 FOOD 230 APPLE 2
1 2019-04-01 101 Ann 1900 1900 MISC 96 CIGAR 1
2 2019-04-02 102 Sue 600 200 FOOD 240 GRAPE 3
3 2019-04-03 103 Leo 1400 700 MISC 78 QUMASK 2
4 2019-04-03 103 Leo 1800 900 MISC 71 CANDLE 2
这是我试过的。首先,我使用'json_normalize'为'load'列,它工作得很好:
mydf = mydf.join(pd.json_normalize(mydf['load']))
mydf = mydf.drop(['load'], axis=1)
mydf
order_date detail id name
0 2019-04-01 [{'product_gross_total': 980, 'unitary_gross_p... 100 Joe
1 2019-04-01 [{'product_gross_total': 1900, 'unitary_gross_... 101 Ann
2 2019-04-02 [{'product_gross_total': 600, 'unitary_gross_p... 102 Sue
3 2019-04-03 [{'product_gross_total': 1400, 'unitary_gross_... 103 Leo
但是当我尝试对detail列做同样的操作时,我得到了这个
mydf = mydf.join(pd.json_normalize(mydf['detail']))
mydf = mydf.drop(['detail'], axis=1)
mydf
order_date id name 0 1
0 2019-04-01 100 Joe {'product_gross_total': 980, 'unitary_gross_pr... None
1 2019-04-01 101 Ann {'product_gross_total': 1900, 'unitary_gross_p... None
2 2019-04-02 102 Sue {'product_gross_total': 600, 'unitary_gross_pr... None
3 2019-04-03 103 Leo {'product_gross_total': 1400, 'unitary_gross_p... {'product_gross_total': 1800, 'unitary_gross_p...
我猜每个元素在列'detail'它添加一列…如果我有一个有15个产品的交易,我就有15列。我被困在把它们转换成行了。如有任何帮助或指导,我将不胜感激。
尝试:
mydf = mydf.explode("detail")
mydf = pd.concat(
[
mydf,
mydf.pop("load").apply(pd.Series),
mydf.pop("detail").apply(pd.Series),
],
axis=1,
)
mydf = mydf.drop(columns="payment")
print(mydf.to_markdown())
打印:
相关内容
- 没有找到相关文章
最新更新
- React测试库:fireEvent更改不工作
- ASP.. NET Core:在Program.cs中控制版本依赖注入
- 在 C 中,'int *'是派生数据类型吗?
- Swing JFileChooser只接受ZIP和Directory
- 这样定义react组件的原因是什么?
- 向3d numpy数组添加行向量
- AWS ECS Service Connect versus Service Discovery
- 根据MongoDB中的条件获取下一个和上一个文档
- 是否有办法使一个正在运行的进程处于D状态或Z状态?
- 使用最新版本的d3-path配置jest
- 为什么我的复制和粘贴代码出现"Object Required"错误?
- 模型元类与模型形式元类有何不同?
- 可以在不更改对象构造函数的情况下向对象构造函数添加新的动态参数吗
- 对于下面的CNN模型,我们需要优化多少个模型参数?
- typescript Redis客户端在类的构造函数?
- 无法从带有Java进程的Docker控制台分离
- 我可以列出一个数字,如果类实例在一个数组?
- 显示一次登录屏幕
- 如何获取defaultColDef中正在处理的单元格的列索引.网格中的cellClass
- 具有多个worker的可迭代pytorch数据集
- 如何在刀片模板内编写PHP代码
- BIM360提交API文档
- React Native API FETCH每个对象的不同名称
- 如何在Linux mongosh命令行上指定数据库以及身份验证
- GitHub Actions CodeQL初始化操作失败
- 不和谐.js "cannot read properties of undefined"尝试将事件处理程序放入单独的文件中时
- Woocommerce如何将钩子中的函数转换为短代码
- Oracle SELECT每个不同的列对每个不同的列
- 将复选框的字符串转换为布尔值
- 不能使用函数查找数组部分的和(javascript)
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium