Python 3 pandas : 转换数据框以获得级别
Python 3 pandas : Transform Data Frame to get levels
我正在使用 python 3 pandas.
我的数据框如下所示:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([['eve', "A", True],['eve', 'C', True], ['nathan', 'B', False],['eve', 'C', True], ['eric', 'C', True],['eric', 'D', True]]),
columns=['Name', 'Level', 'Date'])
输出:
Name Level Date
0 eve A True
1 eve C True
2 nathan B False
3 eve C True
4 eric C True
4 eric D True
我想得到:
Name Level Date
Eve A True
C True
C True
eric C True
eric D True
nathan B False
提前致谢
如果你有:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.array([['eve', "A", True],['eve', 'C', True], ['nathan', 'B', False],['eve', 'C', True], ['eric', 'C', True]]),
columns=['Name', 'Level', 'Date'])
您可以按 Name
列对行进行排序:
df.sort_values('Name')
哪个会给你这个:
Name Level Date
4 eric C True
0 eve A True
1 eve C True
3 eve C True
2 nathan B False
即在笔记本中:
如果你想按 Name
列中内容的频率对行进行排序,你可以这样做,依靠 & this:
sorteddf = df.assign(frequency = df.groupby('Name')['Name'].transform('count')).sort_values(by=['frequency'],ascending=False).drop('frequency',1)
给予:
我正在使用 python 3 pandas.
我的数据框如下所示:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([['eve', "A", True],['eve', 'C', True], ['nathan', 'B', False],['eve', 'C', True], ['eric', 'C', True],['eric', 'D', True]]),
columns=['Name', 'Level', 'Date'])
输出:
Name Level Date
0 eve A True
1 eve C True
2 nathan B False
3 eve C True
4 eric C True
4 eric D True
我想得到:
Name Level Date
Eve A True
C True
C True
eric C True
eric D True
nathan B False
提前致谢
如果你有:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.array([['eve', "A", True],['eve', 'C', True], ['nathan', 'B', False],['eve', 'C', True], ['eric', 'C', True]]),
columns=['Name', 'Level', 'Date'])
您可以按 Name
列对行进行排序:
df.sort_values('Name')
哪个会给你这个:
Name Level Date
4 eric C True
0 eve A True
1 eve C True
3 eve C True
2 nathan B False
即在笔记本中:
如果你想按 Name
列中内容的频率对行进行排序,你可以这样做,依靠
sorteddf = df.assign(frequency = df.groupby('Name')['Name'].transform('count')).sort_values(by=['frequency'],ascending=False).drop('frequency',1)
给予: