Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将DF合并到单独的行中?_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何将DF合并到单独的行中?

Python 如何将DF合并到单独的行中?,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下格式的DF: Match | Bookmaker | Over/Under Type | Over 1,5 | Under 1,5 | Over 2 | Under 2 A vs B | Asianodds| 1,5 | 2,11 | 1,26 | n/a | n/a A vs B | Pinnacle | 1,5 | 2,11 | 1,26 | n/a | n/a A vs B

我有以下格式的DF:

Match | Bookmaker | Over/Under Type | Over 1,5 | Under 1,5 | Over 2 | Under 2 

A vs B | Asianodds| 1,5             | 2,11     | 1,26      | n/a    |  n/a

A vs B | Pinnacle | 1,5             | 2,11     | 1,26      | n/a    |  n/a

A vs B | Asianodds| 2               |   n/a    | n/a       | 3,2    | 1,32   

A vs B | Pinnacle | 2               |   n/a    | n/a       | 3,3    | 1,42

C vs D | Asianodds| 1,5             | 2,31     | 1,25      | n/a    | n/a

C vs D | Pinnacle | 1,5             | 2,71     | 1,76      | n/a    | n/a

C vs D | Asianodds| 2               | n/a      |n/a        | 3,4    | 1,34

C vs D | Pinnacle | 2               | n/a      |n/a        | 3,5    | 1,45
如何操作DF以达到此格式(每场比赛/收受赌注者一行):


首先删除类型列上方/下方的
,然后用于每组的第一个非缺失值:

df = df.drop('Over/Under Type', 1).groupby(['Match','Bookmaker'], as_index=False).first()
print (df)
    Match  Bookmaker Over 1,5 Under 1,5 Over 2 Under 2
0  A vs B  Asianodds     2,11      1,26    3,2    1,32
1  A vs B   Pinnacle     2,11      1,26    3,3    1,42
2  C vs D  Asianodds     2,31      1,25    3,4    1,34
3  C vs D   Pinnacle     2,71      1,76    3,5    1,45

请解释你想如何整合一些为什么这还没有达到目的,DF仍然像以前一样。。有什么问题吗?@BlackElefant是否
n/a
缺少值?在我的解决方案之前,可能需要
df=df.replace('n/a',np.nan)
。事实上它确实有效,我只是没有在循环的正确位置应用它。谢谢你的解决方案!
df = df.drop('Over/Under Type', 1).groupby(['Match','Bookmaker'], as_index=False).first()
print (df)
    Match  Bookmaker Over 1,5 Under 1,5 Over 2 Under 2
0  A vs B  Asianodds     2,11      1,26    3,2    1,32
1  A vs B   Pinnacle     2,11      1,26    3,3    1,42
2  C vs D  Asianodds     2,31      1,25    3,4    1,34
3  C vs D   Pinnacle     2,71      1,76    3,5    1,45