用 Python 编写一个程序来转置给定 DataFrame 中的索引和列

pythonpandasserver side programmingprogramming

输入

假设您有一个 DataFrame,索引和列转置的结果是,

转置后的 DataFrame 是
  0 1
0 1 4
1 2 5
2 3 6

解决方案 1

  • 定义 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("原始 DataFrame 是\n", df)
result = [[data[i][j] for i in range(len(data))] for j in range(len(data[0]))]
df2 = pd.DataFrame(result)
print("转置 DataFrame 是\n", df2)

输出

原始 DataFrame 是
  0 1 2
0 1 2 3
1 4 5 6
转置 DataFrame 是
  0 1
0 1 4
1 2 5
2 3 6

解决方案 2

  • 定义 DataFrame

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

df.transpose() # 或 df.T

示例

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

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("原始 DataFrame 是\n", df)
print("转置后的 DataFrame 是\n", df.transpose())

输出

原始 DataFrame 是
  0 1 2
0 1 2 3
1 4 5 6
转置后的 DataFrame 是
  0 1
0 1 4
1 2 5
2 3 6

解决方案 3

  • 定义 DataFrame

  • Zip 方法返回一个元组的迭代器。应用 * 将 unzip 应用于二维列表并对其进行压缩。它定义如下,

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

df2 = pd.DataFrame(result)

示例

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

import pandas as pd
data = [[1,2,3],[4,5,6]]
df = pd.DataFrame(data)
print("原始 DataFrame 是\n", df)
result = zip(*data)
df2 = pd.DataFrame(result)
print("转置 DataFrame 是\n", df2)

输出

原始 DataFrame 是
  0 1 2
0 1 2 3
1 4 5 6
转置 DataFrame 是
  0 1
0 1 4
1 2 5
2 3 6

相关文章