- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个数据框,我想按其中一列对元素进行分组,如果该列具有相同的元素,我想将它们变成一个大元素(跨越几行)。最后我需要把它变成 latex 代码。
假设我有类似的东西
import pandas as pd
import random
table=pd.DataFrame({'a':[1,2,2,2,3,6,6],'b':[-6,-4,-3,-1,0,-1,-2],'c':random.sample(xrange(30), 7)},index=range(7))
给出数据框
| | a | b | c |
-----------------
| 0 | 1 |-6 | 19|
-----------------
| 1 | 2 |-4 | 12|
-----------------
| 2 | 2 |-3 | 16|
-----------------
| 3 | 2 |-1 | 23|
-----------------
| 4 | 3 | 0 | 0 |
-----------------
| 5 | 4 |-1 | 21|
-----------------
| 6 | 4 |-2 | 15|
现在我想按列对它进行分组,例如(它是否将索引保留在最左边的列中并不重要):
| a | b | c |
-------------
| 1 |-6 | 19|
-------------
| |-4 | 12|
--------
| 2 |-3 | 16|
---------
| |-1 | 23|
-------------
| 3 | 0 | 0 |
-------------
| |-1 | 21|
---------
| 4 |-2 | 15|
某些元素跨越多行;希望以上解释了我的意思。我几乎通过使用得到这个
summary=pd.pivot_table(table, index=['a','b'],values=['c'])
但是这使它成为多索引(?),即
| | | c |
-------------
| a | b | |
-------------
| 1 |-6 | 19|
...
使用时出现问题
summary.to_latex()
获取 latex 代码。此外,对于多个值列,pd.pivot_table()
以新的方式对它们进行排序,而我想保留原始 DataFrame 中的顺序。 (请注意,如果有任何行具有相同的 a 和 b,这会更糟,但我的数据不是这种情况)
有没有办法将数据透视表的标题行展平为一个标题行,并保持值列的顺序?或者另一种方法可以完全做到这一点?我已经研究了一些其他选项,例如 pd.groupby()
但没有找到任何东西。
最佳答案
您似乎想要具有 multirow
效果的 latex 代码。 pivot_table
方法不会给你那个。事实上,我不认为 pd.DataFrame.to_latex()
会有那个 multirow
/merged cell for latex。你需要自己写。
如果您不需要合并的单元格,而是有空白单元格也可以,您可以尝试类似的方法:
table=pd.DataFrame({'a':[1,2,2,2,3,6,6],'b':[-6,-4,-3,-1,0,-1,-2],'c':random.sample(xrange(30), 7)},index=range(7))
table.loc[table['a'].diff() == 0, 'a'] = ''
print table.to_latex(index=False)
#Output
\begin{tabular}{lrr}
\toprule
a & b & c \\
\midrule
1 & -6 & 23 \\
2 & -4 & 2 \\
& -3 & 20 \\
& -1 & 21 \\
3 & 0 & 5 \\
6 & -1 & 17 \\
& -2 & 22 \\
\bottomrule
\end{tabular}
关于python - Pandas 数据框 : group by columnn and let duplicates of this columnn span several rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33934607/
我有一个数据框,我想按其中一列对元素进行分组,如果该列具有相同的元素,我想将它们变成一个大元素(跨越几行)。最后我需要把它变成 latex 代码。 假设我有类似的东西 import pandas as
我是一名优秀的程序员,十分优秀!