用 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