python - 这是从 df 获取一堆索引排列的最佳方法

标签 python pandas dataframe combinations permutation

这是获取一堆索引的所有排列的最佳方法。我们希望这样做是为了运行卡方检验,我可能正在考虑在这里重新发明轮子。所以对于下面的数据框

 index   value
      a     1.0
      b     2.0
      c     4.0

我想得到以下内容

group      value
      a,b     3.0
      b,c     6.0
      c,a     5.0

最佳答案

你需要先导入itertools

import itertools

In [32]:
indices = [indices[0] + ',' + indices[1] for indices in list(itertools.combinations(df.index , 2))]
indices
Out[32]:
['a,b', 'a,c', 'b,c']


In [31]:
values = [values[0] + values[1] for values in list(itertools.combinations(df.value , 2))]
values
Out[31]:
[3.0, 5.0, 6.0]

In [36]:
pd.DataFrame(data = values , index=indices , columns=['values'])
Out[36]:
   values
a,b  3
a,c  5
b,c  6

关于python - 这是从 df 获取一堆索引排列的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33475406/

相关文章:

python - Python中函数的奇怪的热编码问题

python-3.x - 如何将订单簿数据正确写入具有相同时间戳的 influxdb

python - 子数据帧的子数据帧

python - 如何在任何行在 Python pandas 数据框中具有 NaN 值后删除列

python - 如何使用 Python 循环遍历列中的行并对其进行计数?

python - 在mysql中将项目推送到堆栈的末尾

python-3.x - 绘制 pandas 数据框的 x 和 y 列,第三列值确定点的形状

python - 将字符添加到 pandas 列中每个值的开头

python - 如何用 Pandas 替换数据框的所有行?

python - 合并两列,同时优先考虑第一列