gpt4 book ai didi

python - Pandas 数据帧 : convert 2 columns (value, 值)分为 2 列(值,类型)

转载 作者:行者123 更新时间:2023-11-28 20:00:45 32 4
gpt4 key购买 nike

假设我有以下数据框“A”

         utilization  utilization_billable
service
1 10.0 5.0
2 30.0 20.0
3 40.0 30.0
4 40.0 32.0

我需要将其转换为以下数据框 "B"

         utilization      type
service
1 10.0 total
2 30.0 total
3 40.0 total
4 40.0 total
1 5.0 billable
2 20.0 billable
3 30.0 billable
4 32.0 billable

因此第一个值被分类到类型列,其值为总计或计费。

data = {
'utilization': [10.0, 30.0, 40.0, 40.0],
'utilization_billable': [5.0, 20.0, 30.0, 32.0],
'service': [1, 2, 3, 4]
}
df = pd.DataFrame.from_dict(data).set_index('service')
print(df)

data = {
'utilization': [10.0, 30.0, 40.0, 40.0, 5.0, 20.0, 30.0, 32.0],
'service': [1, 2, 3, 4, 1, 2, 3, 4],
'type': [
'total',
'total',
'total',
'total',
'billable',
'billable',
'billable',
'billable',
]
}
df = pd.DataFrame.from_dict(data).set_index('service')
print(df)

有没有办法转换数据框并执行此类分类?

最佳答案

你可以使用 pd.melt :

import pandas as pd
data = {
'utilization': [10.0, 30.0, 40.0, 40.0],
'utilization_billable': [5.0, 20.0, 30.0, 32.0],
'service': [1, 2, 3, 4]}

df = pd.DataFrame(data)
result = pd.melt(df, var_name='type', value_name='utilization', id_vars='service')
print(result)

产量

   service                  type  utilization
0 1 utilization 10.0
1 2 utilization 30.0
2 3 utilization 40.0
3 4 utilization 40.0
4 1 utilization_billable 5.0
5 2 utilization_billable 20.0
6 3 utilization_billable 30.0
7 4 utilization_billable 32.0

然后 result.set_index('service') 将使 service 成为索引,但我建议避免这种情况,因为 service 值不是唯一的。

关于python - Pandas 数据帧 : convert 2 columns (value, 值)分为 2 列(值,类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55009878/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com