gpt4 book ai didi

python - 从 Pandas 数据框中检索数据以绘制在 seaborn 中

转载 作者:行者123 更新时间:2023-12-04 07:18:37 25 4
gpt4 key购买 nike

这个问题可能已经被回答了一百万次;然而,开始使用 Pandas 并习惯数据框的工作方式仍然很困难。
因此,如果有人可以提出我的方法的更好版本来从数据框中检索感兴趣的数据,我将非常感激。
我有一个存储分数的数据框,可以用以下方法模拟:

import random
import pandas as pd


columns = ['ID', 'Number', 'Score 1', 'Score 2', 'Score 3', 'Score 4']
df = pd.DataFrame(columns=columns)

for k in range(100):
idx = random.choice([10, 11, 12, 13, 14])
number = random.choice([1, 2, 3, 4])
scores = [random.choice(range(1000)) for _ in range (4)]
entry = pd.DataFrame([[idx, number] + scores], columns=df.columns)
df = df.append(entry)
诀窍是对于给定的 ID,给定的数字 N 可以出现 X 次,其中 X 是非常量的。但是,对于数据框中的每一行,分数的数量是固定的,即在此示例中为 4。
我想为给定的 ID 选择分数 4 并按数字对它们进行分组。例如
# Retrieve scores of ID 10
id_scores = df.loc[df['ID'] == 10]
numbers = id_scores.Number.unique()

data = list()
for n in numbers:
data.append(id_scores.loc[id_scores['Number'] == n]['Score 4'].values)
上面的代码有效..但我不需要精通 Pandas 就可以理解这不是正确的方法。然后,我的目标是使用箱线图绘制给定数字(x 轴)的分数 4。因此,每个框可能包含不同数量的分数,因为给定 ID 的值编号是不固定的。

最佳答案

您可以为此使用 Pandas groupby:

df.loc[df['ID'] ==10].groupby('Number')['Score 4'].apply(list)
给出(例如):
Number
1 [528, 501, 69, 251, 387]
2 [549, 321, 302]
3 [409, 720, 629, 699, 803]
4 [524, 228, 682, 852, 525]
Name: Score 4, dtype: object
如果这能回答您的问题,请告诉我。

关于python - 从 Pandas 数据框中检索数据以绘制在 seaborn 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68638799/

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