gpt4 book ai didi

python - Pandas 数据框中的数字与字符串数据的散点图

转载 作者:行者123 更新时间:2023-12-01 08:23:46 26 4
gpt4 key购买 nike

我有一个以下形式的数据框:

import pandas as pd
df = pd.DataFrame({'t': [0, 1, 2, 3, 4, 5, 6],
'l': [["c", "d"], ["a", "b"], ["c", "d"], ["a", "b"], ["c", "d"], ["c", "d"], ["c", "d"]]})

l由列表组成,其中列表条目可以位于集合{a,b,c,d}中。我想按以下方式绘制 l 的每个值 t 的内容,该方式基本上显示了四个可能值 {a,b,c, d} 一次 t激活:

enter image description here

为了创建上面的图,我所做的是基于上面的 df 创建以下数据框(-1 未激活,否则为非负数) :

df_plot = pd.DataFrame({'t': [0, 1, 2, 3, 4,5,6],
'a': [-1, 0, -1, 0, -1,-1,-1],
'b': [-1, 1, -1, 1, -1,-1,-1],
'c': [2, -1, 2, -1, 2,2,2],
'd': [3, -1, 3, -1, 3,3,3]})

import numpy as np
ax = df_plot.plot(x="t", y=["a","b","c","d"],style='.', ylim=[-0.5,3.5], yticks=np.arange(0,3.1,1),legend=False)
labels = ["a","b","c","d"]
ax.set_yticklabels(labels)

从技术上讲,这给了我想要的东西,但是,我想有一种更简单、更专业的方法来绘制它 - 有没有更聪明的方法使用 Python 的库之一?

最佳答案

像这样怎么样:

# Reshape dataframe    
dff = df.l.apply(pd.Series).merge(df, right_index = True, left_index = True).drop(["l"], axis = 1).melt(id_vars = ['t'], value_name = "l").drop("variable", axis = 1)

# Plot dataframe
import matplotlib.pyplot as plt
plt.scatter(dff['t'], dff['l'])
# plt.grid(True)

enter image description here

有关我编写的代码中发生的情况的更多详细信息可以单击此链接找到:https://mikulskibartosz.name/how-to-split-a-list-inside-a-dataframe-cell-into-rows-in-pandas-9849d8ff2401

注意:无论 l 列中的列表中有多少项,它都应该有效。

关于python - Pandas 数据框中的数字与字符串数据的散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54437315/

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