来自Pandas数据帧的数值与字符串数据的散点图

时间:2019-01-30 09:33:37

标签: python pandas

我具有以下形式的数据框:

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的内容,该方法基本上显示了一次{{1}中四个{a,b,c,d}可能值中的哪个acticated 1}}:

enter image description here

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

-1

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

1 个答案:

答案 0 :(得分:1)

怎么样呢?

# 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 列中的列表中有多少项,它都应该起作用。