【问题标题】:Get vertical to horizontal listing from pandas dataframe从熊猫数据框中获取垂直到水平列表
【发布时间】:2020-06-23 03:30:46
【问题描述】:

我从数据框中导入了一些数据。 excel

import pandas as pd

ExcelPrincipal = pd.ExcelFile('calculus.xlsx')

DEntr = ExcelPrincipal.parse('Hoja1')

idr = []
for i in range(len(DEntr)):
    idr.append([DEntr.values[i][0],DEntr.values[i][1],DEntr.values[i][2],
                DEntr.values[i][7],DEntr.values[i][8],DEntr.values[i][9]])

print('The list is: ','\n',idr)

使用我编写的代码,我设法将它们传递给列表,但水平地,获得以下结果:

[[1, 'CC', 1, 2.5, 0, 0], [2, 'CC', 1, 2.5, 0, 0], [3, 'CC', 2, 2.5, 0, 0], [ 4, 'VV', 1, 4.0, -2200, -1000], [5, 'VV', 2, 5.0, -2200, -1000]]

但我真正想要的是让我的数据框列水平打印,如下所示:

[[1, 2, 3, 4, 5], ['CC', 'CC', 'CC', 'VV', 'VV'], [1, 1, 2, 1, 2], [2.5, 2.5, 2.5, 4, 5], [0, 0, 0, -2200, -2200], [0, 0, 0, -1000, -1000]]

我非常感谢他们各自的贡献,最好的问候。

【问题讨论】:

  • 您在寻找transpose 方法吗?
  • 或者,如果它不再是数据框的形式,zip(*idr) 也可以用来旋转二维列表

标签: python python-3.x list dataframe


【解决方案1】:

在我看来,您并不关心数据框,因为根据您的代码,它应该处于良好状态。

我看到你想要的是在列表上做一个转置。所以而不是:

print('The list is: ','\n',idr)

这样做:

print('The list is: ','\n',list(zip(*idr)))

【讨论】:

    【解决方案2】:

    我认为这会对你有所帮助:

    df = pd.DataFrame([[1, 'CC', 1, 2.5, 0, 0], [2, 'CC', 1, 2.5, 0, 0], [3, 'CC', 2, 2.5, 0, 0], [ 4, 'VV', 1, 4.0, -2200, -1000], [5, 'VV', 2, 5.0, -2200, -1000]]).T
    

    输出:

         0    1    2      3      4
    0    1    2    3      4      5
    1   CC   CC   CC     VV     VV
    2    1    1    2      1      2
    3  2.5  2.5  2.5      4      5
    4    0    0    0  -2200  -2200
    5    0    0    0  -1000  -1000
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-20
      • 2019-07-09
      • 2022-01-11
      • 2021-12-12
      • 2014-04-15
      • 2021-11-22
      相关资源
      最近更新 更多