我有一个pandas数据帧,其中包含.wav
数据的文件路径。我可以使用pandas DataFrame.plot()
函数来绘制引用的数据吗?
例:
典型用法:df.plot()
我想做什么:df.plot(df.path_to_data)
???
我怀疑apply
和lambda
的某些组合可以解决问题,但我对这些工具并不是很熟悉。
不,那是不可能的。 plot
是在pd.DataFrame
对象上运行的一阶函数。在这里,df
将是同样的事情。你需要做的是
pd.read_*
(通常是pd.read_csv(file)
)加载数据框并分配给df
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。
我认为你需要首先通过DataFrame
然后read_csv
创建DataFrame.plot
:
pd.read_csv('path_to_data').plot()
但如果需要从DataFrame
中的path
s创建的DataFrame
s图:
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()