python - 按列名将数据框映射到一列笛卡尔积
问题描述
注意:笛卡尔积可能不是正确的语言,因为我们使用的是数据,而不是集合。它更像是“免费产品”或“文字”。
将数据框转换为列表列表的方法不止一种。
在这种情况下,列表列表实际上表示列列表,其中列表索引是行索引。
我想要做的是获取一个数据框,按名称选择特定列,然后生成一个新列表,其中内部列表是所选列中元素的笛卡尔积。这里给出了一个简化的例子:
import pandas as pd
df = pd.DataFrame([[1,2,3],[3,4,5]])
magicMap(df)
df = [[1,3],[2,4],[3,5]]
使用列名:
df # full of columns with names
magicMap(df, listOfCollumnNames)
df = [[c1r1,c2r1...],[c1r2, c2r2....], [c1r3, c2r3....]...]
注意:“cirj”是第 i 列第 j 行。
有没有一种简单的方法可以做到这一点?
解决方案
编码
import pandas as pd
df = pd.DataFrame([[1,2,3],[3,4,5]])
df2= df.transpose()
从,df
0 1 2
0 1 2 3
1 3 4 5
对此,df2
0 1
0 1 3
1 2 4
2 3 5
看起来像你需要的
df2.values.tolist()
[[1, 3], [2, 4], [3, 5]]
并以您想要使用的方式获取列顺序,df3 = df2.reindex(columns=column_names)
其中 column_names 是您想要的顺序,
推荐阅读
- php - 如果 IP 匹配,则从 CSV 中删除一行
- php - 您可以(MySQL)按可选值和不同表中的值排序吗?
- windows - 加载 mod_wsgi 时的 Apache 权限问题
- php - PHP 将 CSV 转换为特定的 JSON 分布
- python - 在 RRS 提要中寻找不同的坏词,停留在变量列表中,如果有的话
- arangodb - 在 ArangoDB 中进行 EXISTS 查询的最佳方法是什么
- javascript - 为什么html2canvas产生模糊的pdf文件?
- css - 代号一的组件在 Eclipse 上失去了风格
- javascript - 异步 API 请求返回所有结果
- php - 从 API 响应中迭代 PHP Laravel 中的多维数组时出现问题