Python 使用JSON模板映射(重新排序/重命名)列
我有这样一个数据框:Python 使用JSON模板映射(重新排序/重命名)列,python,pandas,Python,Pandas,我有这样一个数据框: |customer_key|order_id|subtotal|address | ------------------------------------------------ |12345 |O12356 |123.45 |123 Road Street| |10986 |945764 |70.00 |634 Road Street| |32576 |678366 |29.95 |369 Road St
|customer_key|order_id|subtotal|address |
------------------------------------------------
|12345 |O12356 |123.45 |123 Road Street|
|10986 |945764 |70.00 |634 Road Street|
|32576 |678366 |29.95 |369 Road Street|
|67896 |198266 |837.69 |785 Road Street|
我想根据包含当前列名和所需列名的以下JSON对列进行重新排序/重命名:
{
"customer_key": "cust_id",
"order_id": "transaction_id",
"address": "shipping_address",
"subtotal": "subtotal"
}
要获得结果数据帧,请执行以下操作:
|cust_id|transaction_id|shipping_address|subtotal|
--------------------------------------------------
|12345 |O12356 |123 Road Street |123.45 |
|10986 |945764 |634 Road Street |70.00 |
|32576 |678366 |369 Road Street |29.95 |
|67896 |198266 |785 Road Street |837.69 |
这是可能的吗?如果这样做更简单,那么列的顺序并不重要。对于重命名和排序,您需要在重命名后重新编制索引
df.rename(columns=d).reindex(columns=d.values())
或:
@anky_91这也能帮你重新订购吗?谢谢!!出于好奇,你知道同样的方法是否适用于pyspark数据帧吗?@DBA108642我从未使用过spark。但我认为spark dfs是不可变的,因此您可能需要一种不同的方法。不确定,只是猜测一下,谢谢,我发布了这个问题,它确实与spark使用了类似的方法
df.reindex(columns=d.keys()).rename(columns=d)