- 我有一个 pandas 系列,其值是 numpy 数组。为简单起见,假设
series = pd.Series([np.array([1,2,3,4]), np.array([5,6,7,8]), np.array([9,10,11,12])], index=['file1', 'file2', 'file3'])
file1 [1, 2, 3, 4]
file2 [5, 6, 7, 8]
file3 [9, 10, 11, 12]
如何将其扩展为 df_concatenated
形式的数据框:
0 1 2 3
file1 1 2 3 4
file2 5 6 7 8
file3 9 10 11 12
- 同一问题的更广泛版本。实际上,
series
是从以下形式的不同数据帧中获得的:
数据框:
0 1
file slide
file1 1 1 2
2 3 4
file2 1 5 6
2 7 8
file3 1 9 10
2 11 12
通过对"file"索引进行分组并连接列。
def concat_sublevel(data):
return np.concatenate(data.values)
series = data.groupby(level=[0]).apply(concat_sublevel)
可能有人看到了从数据帧 data
到 df_concatenated
的更好方法。
警告。 slide
子索引对于不同的 file
值可以有不同数量的值。在这种情况下,我需要重复其中一行以在所有结果行中获得相同的尺寸
最佳答案
您可以尝试使用记录中的 pandas Dataframe
pd.DataFrame.from_records(series.values,index=series.index)
输出:
0 1 2 3
file1 1 2 3 4
file2 5 6 7 8
file3 9 10 11 12
关于python - 如何将具有 numpy 数组值的 Pandas 系列转换为数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53337762/