And*_*rai 4 python dictionary pretty-print grid-layout pandas
好吧,我之前阅读了所有这些,我认为大熊猫可能是一个解决方案,但我的问题略有不同:
垂直
打印列表列表打印列表作为表格数据
打印字典值在python列表中
打印到字典表
我有一份清单:
dict={"A":[i1, i2,i3], "B":[i1, i4,i5], "C":[i1, i2,i5]}
Run Code Online (Sandbox Code Playgroud)
我想要的输出是:
i1 i2 i3 i4 i5
A x x x - -
B x - - x x
C x x - - x
Run Code Online (Sandbox Code Playgroud)
(甚至更好,
i1 i2 i3 i4 i5
A A A A - -
B B - - B B
C C C - - C
Run Code Online (Sandbox Code Playgroud)
或者在另一个字典中匹配A,B,C或(A,in)的值,但如果我只能拥有第一个表,我会非常高兴)
没有列表包含重复,但这些列表中的每个元素都是从同一个列表中提取的(实际上我的问题是使用相应的蛋白质制作带注释的术语网格,键是带注释的术语,在我的上下文中是与这些蛋白质相关的函数研究).
我确实可以想到一种复杂的方法(构建0和1的向量,用于将每个列表与一般列表进行比较,将这些向量与键相关联,将其放入一个pandas DataFrame中,该格式将由我重新建立每个列表中的大量实体,然后打印出来),但这看起来很乏味/单调.
我认为必须有一个已知的方法来做一些模块(熊猫,漂亮,其他?); 我只是不知道.所以我很高兴有任何见解.谢谢
apply 用一个 lambda
d = {
"A": ['i1', 'i2', 'i3'],
"B": ['i1', 'i4', 'i5'],
"C": ['i1', 'i2', 'i5']
}
df = pd.DataFrame(d)
df.apply(lambda c: pd.Series(c.name, c.values)).fillna('-').T
i1 i2 i3 i4 i5
A A A A - -
B B - - B B
C C C - - C
Run Code Online (Sandbox Code Playgroud)