Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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 按数据分组到带有熊猫的dataframe列_Python_Dataframe_Bigdata - Fatal编程技术网

Python 按数据分组到带有熊猫的dataframe列

Python 按数据分组到带有熊猫的dataframe列,python,dataframe,bigdata,Python,Dataframe,Bigdata,我有以下数据帧。描述每个用户居住的城市 City Name Date 0 Seattle Alice 2017 1 Seattle Bob 2011 2 Portland Mallory 2010 3 Seattle Mallory 2016 4 Memphis Bob 2012 5 Portland Mallory 2013 你能和熊猫一起实现以下目标吗 Name

我有以下数据帧。描述每个用户居住的城市

       City     Name    Date
0   Seattle    Alice    2017
1   Seattle      Bob    2011
2  Portland  Mallory    2010
3   Seattle  Mallory    2016
4   Memphis      Bob    2012
5  Portland  Mallory    2013
你能和熊猫一起实现以下目标吗

     Name     City1    Date1   City2   Date2   City3    Date3
0   Alice     Seattle  2017    NaN     NaN     NaN      NaN
1   Bob       Seattle  2011    Memphis 2012    NaN      NaN
2   Mallory   Portland 2010    Seattle 2016    Portland 2013

多谢各位

您可以使用带有自定义功能的
groupby
,在其中创建新的
DataFrame
,然后按对第二级
多索引进行排序,最后使用
join
将其删除:

df1 = df.groupby('Name')['City','Date']
        .apply(lambda x: pd.DataFrame(x.values, 
                                      columns = ['City','Date'], 
                                      index = np.arange(1, len(x) + 1).astype(str)))
        .unstack()
df1 = df1.sort_index(axis=1, level=1).replace({None:np.nan})
df1.columns = df1.columns.map(''.join)
print (df1)
            City1  Date1    City2   Date2     City3   Date3
Name                                                       
Alice     Seattle   2017      NaN     NaN       NaN     NaN
Bob       Seattle   2011  Memphis  2012.0       NaN     NaN
Mallory  Portland   2010  Seattle  2016.0  Portland  2013.0