使用 Python 编写程序,对给定 DataFrame 的索引和列进行转置。


输入 -

假设您有一个 DataFrame,并且索引和列转置的结果为:

Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

方案 1

  • 设置嵌套列表推导式,迭代二维列表数据中的每个元素,并将结果存储在 result 中。

  • 定义一个 DataFrame

result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))
  • 将结果转换为 DataFrame,

df2 = pd.DataFrame(result)

示例

让我们看看完整的实现,以便更好地理解 -

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))]
df2 = pd.DataFrame(result)
print("Transposed DataFrame is\n", df2)

输出

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

方案 2

  • 设置嵌套列表推导式,迭代二维列表数据中的每个元素,并将结果存储在 result 中。

  • 对 DataFrame 应用转置方法 df.T 或 df.transpose()。

df.transpose() # or df.T

示例

让我们看看完整的实现,以便更好地理解 -

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
print("Transposed DataFrame is\n", df.transpose())

输出

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

方案 3

  • 设置嵌套列表推导式,迭代二维列表数据中的每个元素,并将结果存储在 result 中。

  • zip 方法返回一个元组迭代器。使用 * 和 zip 对二维列表应用解压操作。定义如下,

result = zip(*data)
  • 将结果转换为 DataFrame,

df2 = pd.DataFrame(result)

示例

让我们看看完整的实现,以便更好地理解 -

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("Original DataFrame is\n", df)
result = zip(*data)
df2 = pd.DataFrame(result)
print("Transposed DataFrame is\n", df2)

输出

Original DataFrame is
  0 1 2
0 1 2 3
1 4 5 6
Transposed DataFrame is
  0 1
0 1 4
1 2 5
2 3 6

更新于: 2021-02-24

236 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.