python - 制作一个新的 pandas.dataframe 列作为过滤的其他列

标签 python pandas

我有一个格式如下的 pandas.Dataframe 对象:

Symb     Bid     Ask
ESU6     207000  207025
YMU6     12793   12797
ESU6     207025  207050
YMU6     12795   12797

但我想将对象重新配置为如下格式:

Bid.ESU6     Ask.ESU6     Bid.YMU6     Ask.YMU6
207000       207025       
                          12793        12797
207025       207050       
                          12795        12797

有没有一种无需遍历每个元素的 for 循环即可重新配置数据的简单方法?

提前致谢!

最佳答案

您可以使用 pivot_table :

df1 = df.pivot_table(columns='Symb', values=['Bid','Ask'], index=df.index)
df1.sort_index(axis=1, level=1, inplace=True)
df1.columns = ['.'.join(col) for col in df1.columns]
df1.fillna('', inplace=True)
print (df1)
  Bid.ESU6 Ask.ESU6 Bid.YMU6 Ask.YMU6
0   207000   207025                  
1                      12793    12797
2   207025   207050                  
3                      12795    12797

关于python - 制作一个新的 pandas.dataframe 列作为过滤的其他列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38204322/

相关文章:

sql - 基于不同 Pandas DataFrame 条件查找的返回值

python - 对列表内的值进行分组

python - 使用 Homebrew 安装另一个 python 后如何恢复 Mac 默认 python?

python - 导入错误 : cannot import name 'model_to_dot'

python - Pandas Dataframe 或 Panel 到 3d numpy 数组

python - 对基于另一列的每个值求和,然后除以总计

python - 保留 Pandas 中具有百分比重叠范围的行

python - Pandas .unique() TypeError : unhashable type: 'list'

具有 "@"(矩阵乘法)的对象的 Python 类型提示

python - 在 python 代码中处理来自 C 库的对象