python - 如何将一系列元组转换为 Pandas 数据框?

标签 python pandas dataframe series

假设我们有以下 pandas 系列是在 groupby 之后应用于数据框的应用函数产生的。

<class 'pandas.core.series.Series'>
0        (1, 0, [0.2, 0.2, 0.2], [0.2, 0.2, 0.2])
1     (2, 1000, [0.6, 0.7, 0.5], [0.1, 0.3, 0.1])
2        (1, 0, [0.4, 0.4, 0.4], [0.4, 0.4, 0.4])
3        (1, 0, [0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
4    (3, 14000, [0.8, 0.8, 0.8], [0.6, 0.6, 0.6])
dtype: object

当给定 sigList=['sig1','sig2', 'sig3'] 时,我们能否将其转换为数据框?

Length Distance sig1Max sig2Max sig3Max sig1Min sig2Min sig3Min
1 0 0.2 0.2 0.2 0.2 0.2 0.2                  
2 1000 0.6 0.7 0.5 0.1 0.3 0.1
1 0 0.4 0.4 0.4 0.4 0.4 0.4
1 0 0.5 0.5 0.5 0.5 0.5 0.5
3 14000 0.8 0.8 0.8 0.6 0.6 0.6

提前致谢

最佳答案

使用列表理解以老式(且快速)的方式进行操作:

columns = ("Length Distance sig1Max sig2Max" 
           "sig3Max sig1Min sig2Min sig3Min").split()
df = pd.DataFrame([[a, b, *c, *d] for a,b,c,d in series.values], columns=columns)
print(df)
   Length  Distance  sig1Max  sig2Max  sig3Max  sig1Min  sig2Min  sig3Min
0       1         0      0.2      0.2      0.2      0.2      0.2      0.2
1       2      1000      0.6      0.7      0.5      0.1      0.3      0.1
2       1         0      0.4      0.4      0.4      0.4      0.4      0.4
3       1         0      0.5      0.5      0.5      0.5      0.5      0.5
4       3     14000      0.8      0.8      0.8      0.6      0.6      0.6

或者,也许你的意思是,做的更动态一些

sigList = ['sig1', 'sig2', 'sig3']

columns = ['Length', 'Distance']
columns.extend(f'{s}{lbl}' for lbl in ('Max', 'Min') for s in sigList )

df = pd.DataFrame([[a,b,*c,*d] for a,b,c,d in series.values], columns=columns)
print(df)
   Length  Distance  sig1Max  sig2Max  sig3Max  sig1Min  sig2Min  sig3Min
0       1         0      0.2      0.2      0.2      0.2      0.2      0.2
1       2      1000      0.6      0.7      0.5      0.1      0.3      0.1
2       1         0      0.4      0.4      0.4      0.4      0.4      0.4
3       1         0      0.5      0.5      0.5      0.5      0.5      0.5
4       3     14000      0.8      0.8      0.8      0.6      0.6      0.6

关于python - 如何将一系列元组转换为 Pandas 数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53402584/

相关文章:

python - 我在 python 中打印钻石代码的问题

python - 使用 virtualenv 时 django settings.py 中 TEMPLATE_DIRS 的路径是什么

python - 在 Python 中使用 fping 获取 ping 时间

python - 总结当前行与上一行的差异

python - 在 pandas 列中搜索字符串

python - 按具有相同名称的列连接数据框

python - 根据每个数据帧中的值对数据帧列表中数据帧的顺序进行排序

python - 在 pandas 列上应用函数

python - Pandas:使用 groupby 或数据透视表时按顺序排列日期

python - 选择 Pandas 中特定行上方和下方的 N 行