gpt4 book ai didi

python - 有效地将列表转换为数据框

转载 作者:太空宇宙 更新时间:2023-11-03 15:30:49 25 4
gpt4 key购买 nike

我有一个图像列表,我想将每个图像的所有像素获取到一个 DataFrame 列中,并将图像的数量放入另一列中。我正在尝试这样做

plotDF = DataFrame()
plotData = [np.array([[1,2,1],[1,1,2],[4,2,1]]), np.array([[1,2,2,1],[1,3,1,3]]), np.array([[1,1,2,3],[4,1,1,1],[1,1,1,4]])]
plotData = [image.flatten() for image in plotData]
for n, pD in zip(range(len(plotData)), plotData):
for pixel in pD:
plotDF = plotDF.append(DataFrame.from_records([{'n': n, 'pixel': pixel}]))
plotDF = plotDF.reset_index(drop=True)

但这看起来效率很低。

我怎样才能更有效地做到这一点,可能使用 https://github.com/kieferk/dfply

最佳答案

我认为你可以使用numpy.repeat对于按长度重复的值 str.len以及通过chain嵌套的列表的平面值。

from  itertools import chain

s = pd.Series(plotData)
df2 = pd.DataFrame({
"n": np.repeat(s.index + 1, s.str.len()),
"pixel": list(chain.from_iterable(s))})
print (df2)
n pixel
0 1 1
1 1 2
2 1 1
3 1 1
4 1 1
5 1 2
6 1 4
7 1 2
8 1 1
9 2 1
10 2 2
11 2 2
12 2 1
13 2 1
14 2 3
15 2 1
16 2 3
17 3 1
18 3 1
19 3 2
20 3 3
21 3 4
22 3 1
23 3 1
24 3 1
25 3 1
26 3 1
27 3 1
28 3 4

关于python - 有效地将列表转换为数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42900782/

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