我有一个excel工作表,看起来像这样:
Column1 Column2 Column3
0 23 1
1 5 2
1 2 3
1 19 5
2 56 1
2 22 2
3 2 4
3 14 5
4 59 1
5 44 1
5 1 2
5 87 3
我希望提取这些数据,按列1分组,然后将其添加到字典中,使其如下所示:
{0: [1],
1: [2,3,5],
2: [1,2],
3: [4,5],
4: [1],
5: [1,2,3]}
到目前为止这是我的代码
excel = pandas.read_excel(r"e:\test_data.xlsx", sheetname='mySheet', parse_cols'A,C')
myTable = excel.groupby("Column1").groups
print myTable
但是,我的输出如下所示:
{0: [0L], 1: [1L, 2L, 3L], 2: [4L, 5L], 3: [6L, 7L], 4: [8L], 5: [9L, 10L, 11L]}
谢啦!
根据文档,GroupBy.groups
:
它的键是计算的唯一组,对应的值是属于每个组的轴标签。
如果您想要值本身,您可以groupby
'Clon1',然后调用Application
并传递list
方法以应用于每个组。
然后,您可以根据需要将其转换为字典:
In [5]:
dict(df.groupby('Column1')['Column3'].apply(list))
Out[5]:
{0: [1], 1: [2, 3, 5], 2: [1, 2], 3: [4, 5], 4: [1], 5: [1, 2, 3]}
(注意:看看这个SO问题,为什么数字后跟L
)
您可以在< code>Column1上< code>groupby,然后将< code>Column3用于< code>apply(list)并调用< code>to_dict?
In [81]: df.groupby('Column1')['Column3'].apply(list).to_dict()
Out[81]: {0: [1], 1: [2, 3, 5], 2: [1, 2], 3: [4, 5], 4: [1], 5: [1, 2, 3]}
或者,做
In [433]: {k: list(v) for k, v in df.groupby('Column1')['Column3']}
Out[433]: {0: [1], 1: [2, 3, 5], 2: [1, 2], 3: [4, 5], 4: [1], 5: [1, 2, 3]}
我有一个Spark数据框,我想按一个键对元素进行分组,并将结果作为一个排序列表 目前我正在使用: 如何使列表中的项目按升序排序?
我想在Python 3.6中的中将列名添加到Groupby的结果中。 我尝试了以下代码: 结果 它看起来像是一个列标题,但是尝试按名称对列进行寻址会产生异常。 我在寻找这个结果。
我试图对result1和result2的值求和,但结果是未知的列result1。有人能帮忙吗?我做错了什么?
问题内容: 我认为这是一个非常基本的问题,但我似乎找不到解决方案。 我有一个类似于以下内容的熊猫数据框: 它创建一个像这样的表: 我正在尝试创建一个表,该表表示该数据帧中不同值的数量。所以我的目标是这样的: 但是,我找不到正确的功能来实现这一目标。我试过了: 这将产生一个具有3行(按预期)但没有“ count”列的表。我不知道如何在该计数栏中添加。有人可以指出我正确的方向吗? 问题答案: 您可以使
问题内容: CREATE TABLE logistics ( id int primary key, campaign VARCHAR(255), event_type VARCHAR (255), date_offered VARCHAR (255), date_ordered DATE, date_delivered DATE, date_recorded DATE, date_complet
使用Ruby 2.0和Rails 4.0.2,我有两个表。其中一个表在第二个表的_form视图中填充选择列表集合。我需要从选择列表中获取用户选择的结果,并在另一个表字段中输入该名称值,而不是选择的ID,而是实际的单词。我想在没有连接表的情况下执行此操作。 我一直在用书籍和作者尝试一些短裙,并观看Ryan Bate的视频短裙,但没有人详细解释如何解决上述问题。我很困惑。如果我能理解这个过程,我可以在