Pandas 所需数据帧的具体格式如所述

Pandas 所需数据帧的具体格式如所述,pandas,dataframe,Pandas,Dataframe,必须将此格式的数据帧转换为如下所示的格式: 统计数据采用字典格式: [ Player Stats] 0 Sachin {'Runs': 18000, 'Hundreds': 49, 'Avg': 45} 1 Ganguly {'Runs': 11000, 'Hundreds': 25, 'Avg': 40} 2 Kohli {'Runs': 11000, 'Hundreds': 41, 'Avg': 50,'Fifties': 50} 到 通过列表理解创建元组列表并传递

必须将此格式的数据帧转换为如下所示的格式: 统计数据采用字典格式:

 [  Player  Stats]
 0 Sachin   {'Runs': 18000, 'Hundreds': 49, 'Avg': 45}
 1 Ganguly  {'Runs': 11000, 'Hundreds': 25, 'Avg': 40}
 2 Kohli    {'Runs': 11000, 'Hundreds': 41, 'Avg': 50,'Fifties': 50}


通过列表理解创建元组列表并传递给
DataFrame
构造函数:

L = [(x, a, b) for x, y in zip(df['Player'], df['Stats']) for a,b in y.items()]
df = pd.DataFrame(L, columns=['Player','Events','Values'])
print (df)
    Player    Events  Values
0   Sachin      Runs   18000
1   Sachin  Hundreds      49
2   Sachin       Avg      45
3  Ganguly      Runs   11000
4  Ganguly  Hundreds      25
5  Ganguly       Avg      40
6    Kohli      Runs   11000
7    Kohli  Hundreds      41
8    Kohli       Avg      50
9    Kohli   Fifties      50
另一个解决方案:

df = pd.DataFrame(df.pop('Stats').values.tolist(), index=df['Player']).stack().reset_index()
df.columns = ['Player','Events','Values']
print (df)
    Player    Events   Values
0   Sachin       Avg     45.0
1   Sachin  Hundreds     49.0
2   Sachin      Runs  18000.0
3  Ganguly       Avg     40.0
4  Ganguly  Hundreds     25.0
5  Ganguly      Runs  11000.0
6    Kohli       Avg     50.0
7    Kohli   Fifties     50.0
8    Kohli  Hundreds     41.0
9    Kohli      Runs  11000.0

到目前为止,您尝试了什么?如果您的
Stats数据是用您的一些代码创建的,并且您可以将其发布到这里,那么您的问题可能会更容易解决。加权_关键字。追加([df['FileName',keywords])这些都是关键字,在这里我给出了一个Python新的示例数据:Leaning now only:df=ast.literal_eval(关键字_NG['keywords'][0]),df1=pd.DataFrame([df.items()])谢谢:此代码适用于此处添加的示例数据集,但在()中我的原始数据集回溯(最近一次调用)出现错误------->1a=[(x,A,b)在zip中的x,y(df3['FileName'],df3['keywords'])在y中的A,b。items()]2 df4=pd.DataFrame(A,columns=['FileName','keywords','Values']))3 df4 in(.0)-->1 A=[(x,A,b)表示x,y表示zip(df3['FileName',df3['keywords'])表示A,b表示y.items()]df4=pd.DataFrame(A,columns=['FileName','keywords','Values'])AttributeError str object没有属性'items'。@muralitaransathyamoorthy您能在我的代码之前添加吗
df Stats']=df['Stats']=df['Stats'。应用(ast.literal\u eval)
?谢谢:-)Working@MuralitharanSathyamoorthy-很抱歉,缺少
]
-需要
df['Stats']=df['Stats']。应用(ast.literal\u eval)
df = pd.DataFrame(df.pop('Stats').values.tolist(), index=df['Player']).stack().reset_index()
df.columns = ['Player','Events','Values']
print (df)
    Player    Events   Values
0   Sachin       Avg     45.0
1   Sachin  Hundreds     49.0
2   Sachin      Runs  18000.0
3  Ganguly       Avg     40.0
4  Ganguly  Hundreds     25.0
5  Ganguly      Runs  11000.0
6    Kohli       Avg     50.0
7    Kohli   Fifties     50.0
8    Kohli  Hundreds     41.0
9    Kohli      Runs  11000.0