Python Pandas-将DF列转换为索引但不重复

Python Pandas-将DF列转换为索引但不重复,python,json,pandas,multi-index,Python,Json,Pandas,Multi Index,如果我有一个像这样的熊猫数据帧,我想把'pol_类'列变成索引,但只有这样它才不会重复(pol_类有3个值:负,中性,正),我最好怎么做 我试图将它转换成一种格式,这样我就可以调用pandas'.to_json(orient='index')格式,最终将它转换成这种json格式。。。(我将删除“time_by_min”列,只使用其他两个非pol_类列) 首先,让我们从dict列表中复制数据帧。(下次你可以帮我们把df.to_dict('split')): 现在,我们可以从数据帧重新生成DICT

如果我有一个像这样的熊猫数据帧,我想把'pol_类'列变成索引,但只有这样它才不会重复(pol_类有3个值:负,中性,正),我最好怎么做

我试图将它转换成一种格式,这样我就可以调用pandas'.to_json(orient='index')格式,最终将它转换成这种json格式。。。(我将删除“time_by_min”列,只使用其他两个非pol_类列)


首先,让我们从dict列表中复制数据帧。(下次你可以帮我们把
df.to_dict('split'))

现在,我们可以从数据帧重新生成DICT列表:

newdata = [{'key':key, 'values': grp[['B','C']].values.tolist()} 
           for key, grp in df.groupby('A')]
通过调用
JSON.dumps
,可以获得所需的JSON:

print(json.dumps(newdata))
屈服

[{"values": [[1439489400000, 4], [1439489460000, 8], [1439489520000, 5]], "key": "Negative"}, {"values": [[1439489400000, 0], [1439489460000, 4], [1439489520000, 15]], "key": "Neutral"}, {"values": [[1439489400000, 6], [1439489460000, 14], [1439489520000, 12]], "key": "Positive"}]

只有一个方向可以使
df。要返回dict的列表,请执行以下操作:
df.to_dict(orient='records')
。每个dict的键都是列名。你的 所需的DICT列表中的DICT的键总是
“值”
“键”
。因此,如果我们想使用df.to dict,我们需要操纵 将给定的数据帧合并为一个数据帧,其中只有两列,称为
“keys”
“值”
。。。呸,工作太多了。只表达所需列表更容易
如上图所示,将dicts作为列表理解。首先,让我们从dicts列表中复制数据帧。(下次你可以帮我们把
df.to_dict('split'))

现在,我们可以从数据帧重新生成DICT列表:

newdata = [{'key':key, 'values': grp[['B','C']].values.tolist()} 
           for key, grp in df.groupby('A')]
通过调用
JSON.dumps
,可以获得所需的JSON:

print(json.dumps(newdata))
屈服

[{"values": [[1439489400000, 4], [1439489460000, 8], [1439489520000, 5]], "key": "Negative"}, {"values": [[1439489400000, 0], [1439489460000, 4], [1439489520000, 15]], "key": "Neutral"}, {"values": [[1439489400000, 6], [1439489460000, 14], [1439489520000, 12]], "key": "Positive"}]

只有一个方向可以使
df。要返回dict的列表,请执行以下操作:
df.to_dict(orient='records')
。每个dict的键都是列名。你的 所需的DICT列表中的DICT的键总是
“值”
“键”
。因此,如果我们想使用df.to dict,我们需要操纵 将给定的数据帧合并为一个数据帧,其中只有两列,称为
“keys”
“值”
。。。呸,工作太多了。只表达所需列表更容易
如上图所示,将dicts作为列表理解。首先,让我们从dicts列表中复制数据帧。(下次你可以帮我们把
df.to_dict('split'))

现在,我们可以从数据帧重新生成DICT列表:

newdata = [{'key':key, 'values': grp[['B','C']].values.tolist()} 
           for key, grp in df.groupby('A')]
通过调用
JSON.dumps
,可以获得所需的JSON:

print(json.dumps(newdata))
屈服

[{"values": [[1439489400000, 4], [1439489460000, 8], [1439489520000, 5]], "key": "Negative"}, {"values": [[1439489400000, 0], [1439489460000, 4], [1439489520000, 15]], "key": "Neutral"}, {"values": [[1439489400000, 6], [1439489460000, 14], [1439489520000, 12]], "key": "Positive"}]

只有一个方向可以使
df。要返回dict的列表,请执行以下操作:
df.to_dict(orient='records')
。每个dict的键都是列名。你的 所需的DICT列表中的DICT的键总是
“值”
“键”
。因此,如果我们想使用df.to dict,我们需要操纵 将给定的数据帧合并为一个数据帧,其中只有两列,称为
“keys”
“值”
。。。呸,工作太多了。只表达所需列表更容易
如上图所示,将dicts作为列表理解。首先,让我们从dicts列表中复制数据帧。(下次你可以帮我们把
df.to_dict('split'))

现在,我们可以从数据帧重新生成DICT列表:

newdata = [{'key':key, 'values': grp[['B','C']].values.tolist()} 
           for key, grp in df.groupby('A')]
通过调用
JSON.dumps
,可以获得所需的JSON:

print(json.dumps(newdata))
屈服

[{"values": [[1439489400000, 4], [1439489460000, 8], [1439489520000, 5]], "key": "Negative"}, {"values": [[1439489400000, 0], [1439489460000, 4], [1439489520000, 15]], "key": "Neutral"}, {"values": [[1439489400000, 6], [1439489460000, 14], [1439489520000, 12]], "key": "Positive"}]

只有一个方向可以使
df。要返回dict的列表,请执行以下操作:
df.to_dict(orient='records')
。每个dict的键都是列名。你的 所需的DICT列表中的DICT的键总是
“值”
“键”
。因此,如果我们想使用df.to dict,我们需要操纵 将给定的数据帧合并为一个数据帧,其中只有两列,称为
“keys”
“值”
。。。呸,工作太多了。只表达所需列表更容易
如上图所示,将dicts作为列表理解。

如果将
pol_class
的唯一值作为索引,则数据帧将只有3行。您希望这些行的内容是什么?@BrenBarn-无论调用pd.to_json(orient='index')以将其转换为这种json形式需要什么?那么这一定是一个列表列表,每个内部列表都是[JStimestamp,count]?如果您的问题是关于如何获取JSON,您可能应该重新编写它,或者重新编写它。听起来你根本不关心数据帧结构,你只需要一种JSON.an的结尾。我只需要重新配置数据帧结构就可以了,因为我认为我考虑的下一步是正确的。但我想我应该明确我的下一个目标是什么,以防有人能找到更好的方法。如果你把
pol_class
的唯一值作为索引,你的数据框将只有3行。您希望这些行的内容是什么?@BrenBarn-无论调用pd.to_json(orient='index')以将其转换为这种json形式需要什么?那么这一定是一个列表列表,每个内部列表都是[JStimestamp,count]?如果您的问题是关于如何获取JSON,您可能应该重新编写它,或者重新编写它。听起来你根本不关心数据帧结构,你只需要一种JSON.an的结尾。我只需要重新配置数据帧结构就可以了,因为我认为我考虑的下一步是正确的。但我想我应该明确我的下一个目标是什么,以防有人能找到更好的方法。如果你把
pol_class
的唯一值作为索引,你的数据框将只有3行。您希望这些行的内容是什么?@BrenBarn-无论调用pd.to_json(orient='index')必须是什么