gpt4 book ai didi

python - 将多行分配给 Pandas 中的一个索引

转载 作者:太空宇宙 更新时间:2023-11-04 09:33:00 25 4
gpt4 key购买 nike

我在 Pandas 中有一个 DataFrame,如下所示:

           Activity Name Activity Start Activity End
0 Phone 04:00 08:00
1 Lunch 08:00 08:30
2 Coffee 08:30 08:45
3 Phone 08:45 10:30
4 WrittenSupport 10:30 12:30
5 Phone 04:00 08:00
6 Lunch 08:00 08:30
7 Coffee 08:30 08:45
8 Phone 08:45 09:00
9 Phone 06:00 09:00

我的 DataFrame 中的数据描述了轮类期间分配给座席的不同事件。问题是另一个带有代理的 DataFrame 只有 57 个名字,而通常有 4-5 个事件分配给一个人。当我合并我的 DataFrames 时,我最终得到 57 个代理和 265 个事件,它们显然与指定人员不匹配。

有什么帮助:每个人工作 8 小时。

如何将其转换为如下所示:

           Activity Name Activity Start Activity End
0 Phone 04:00 08:00
Lunch 08:00 08:30
Coffee 08:30 08:45
Phone 08:45 10:30
WrittenSupport 10:30 12:30
1 Phone 04:00 08:00
Lunch 08:00 08:30
Coffee 08:30 08:45
Phone 08:45 09:00
Phone 06:00 09:00

最佳答案

如果您的代理和事件有单独的行,您可以像这样创建一个多索引:

import pandas as pd

# This is the dataframe data with activities you got from a single agent
agent_1 = [['Phone', 'Phone', 'Coffee', 'Lunch', 'Phone', 'Phone', 'Lunch', 'Lunch'],
['04:00', '08:30', '10:30', '04:00', '10:30', '04:00', '08:30', '10:30']]

# This is the dataframe data from a second agent
agent_2 = [['Phone', 'Pooping', 'Coffee', 'Lunch', 'Phone', 'Meeting', 'Lunch', 'Lunch'],
['08:45', '08:50', '10:30', '04:00', '10:30', '04:00', '08:30', '10:30']]

# We create the dataframe for agent 1
df1 = pd.DataFrame(agent_1).T
df1.columns = ['activity', 'time']


# We create the dataframe for agent 2
df2 = pd.DataFrame(agent_2).T
df2.columns = ['activity', 'time']

# Now we have to dataframes we can't really put together
print(df1)
print("----")
print(df2)
print("----")

# So we should give each dataframe a column with its agent.
df1['agent'] = "Agent_1"
df2['agent'] = "Agent_2"

# Now each dataframe has data on its agent
print(df1)
print("----")
print(df2)
print("----")

# Let's combine them
overview = pd.concat([df1, df2])
print(overview)
print("----")

# To make it even better, we could make a multi-index so we can index both agents AND activities
overview.set_index(['agent', 'activity'], inplace=True)
print(overview)

输出:

  activity   time
0 Phone 04:00
1 Phone 08:30
2 Coffee 10:30
3 Lunch 04:00
4 Phone 10:30
5 Phone 04:00
6 Lunch 08:30
7 Lunch 10:30
----
activity time
0 Phone 08:45
1 Pooping 08:50
2 Coffee 10:30
3 Lunch 04:00
4 Phone 10:30
5 Meeting 04:00
6 Lunch 08:30
7 Lunch 10:30
----
activity time agent
0 Phone 04:00 Agent_1
1 Phone 08:30 Agent_1
2 Coffee 10:30 Agent_1
3 Lunch 04:00 Agent_1
4 Phone 10:30 Agent_1
5 Phone 04:00 Agent_1
6 Lunch 08:30 Agent_1
7 Lunch 10:30 Agent_1
----
activity time agent
0 Phone 08:45 Agent_2
1 Pooping 08:50 Agent_2
2 Coffee 10:30 Agent_2
3 Lunch 04:00 Agent_2
4 Phone 10:30 Agent_2
5 Meeting 04:00 Agent_2
6 Lunch 08:30 Agent_2
7 Lunch 10:30 Agent_2
----
activity time agent
0 Phone 04:00 Agent_1
1 Phone 08:30 Agent_1
2 Coffee 10:30 Agent_1
3 Lunch 04:00 Agent_1
4 Phone 10:30 Agent_1
5 Phone 04:00 Agent_1
6 Lunch 08:30 Agent_1
7 Lunch 10:30 Agent_1
0 Phone 08:45 Agent_2
1 Pooping 08:50 Agent_2
2 Coffee 10:30 Agent_2
3 Lunch 04:00 Agent_2
4 Phone 10:30 Agent_2
5 Meeting 04:00 Agent_2
6 Lunch 08:30 Agent_2
7 Lunch 10:30 Agent_2
----
time
agent activity
Agent_1 Phone 04:00
Phone 08:30
Coffee 10:30
Lunch 04:00
Phone 10:30
Phone 04:00
Lunch 08:30
Lunch 10:30
Agent_2 Phone 08:45
Pooping 08:50
Coffee 10:30
Lunch 04:00
Phone 10:30
Meeting 04:00
Lunch 08:30
Lunch 10:30

关于python - 将多行分配给 Pandas 中的一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54970742/

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