【问题标题】:call pandas plot function for path entry为路径输入调用 pandas 绘图函数
【发布时间】:2018-05-30 22:15:33
【问题描述】:

我有一个 pandas 数据框,其中包含 .wav 数据的文件路径。我可以使用 pandas DataFrame.plot() 函数来绘制引用的数据吗?

例子:

典型用法: df.plot()

我正在尝试做的事情: df.plot(df.path_to_data)???

我怀疑applylambda 的组合可以解决问题,但我对这些工具不是很熟悉。

【问题讨论】:

标签: python pandas matplotlib plot


【解决方案1】:

我认为您需要首先创建DataFrame,显然是由read_csv 然后DataFrame.plot

pd.read_csv('path_to_data').plot()

但如果需要从paths 中的DataFrame 列中创建DataFrames:

df.path_to_data.apply(lambda x: pd.read_csv(x).plot())

或者使用自定义函数:

def f(x):
    pd.read_csv(x).plot()

df.path_to_data.apply(f)

或者使用循环:

for x in df.path_to_data:
    pd.read_csv(x).plot()

【讨论】:

    【解决方案2】:

    不,这是不可能的。 plot 是对 pd.DataFrame 对象进行操作的一阶函数。在这里,df 是一回事。你需要做的是

    1. 使用pd.read_*(通常是pd.read_csv(file))加载您的数据帧并分配给df
    2. 现在致电df.plot

    所以,总而言之,你需要 -

    df = pd.read_csv(filename)
    ... # some processing here (if needed)
    df.plot()
    

    至于是否可以“不将数据加载到内存中”来完成这个问题……您无法绘制不在内存中的数据。如果你愿意,你可以limit tha number of rows you read,或者你可以通过loading it in chunks有效地加载它。你也可以写代码到aggregate/summarise data,或者sample it

    【讨论】:

    • 这会将数据直接加载到df中,对吗?这可能非常大......
    • @ConfusinglyCuriousTheThird 为我的答案添加了一些有用的链接。
    猜你喜欢
    • 1970-01-01
    • 2011-06-08
    • 2012-10-22
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多