我有一个大的数据集,所以我要创建低于类似条件下工作的不同的数据类型总结:熊猫使用计数和条件
比方说,我们正在使用这组数据:
import pandas as pd
df=pd.DataFrame({'Location': [ 'NY', 'SF', 'NY', 'NY', 'SF', 'SF', 'TX', 'TX', 'TX', 'DC'],
'Class': ['H','L','H','L','L','H', 'H','L','L','M'],
'Address': ['12 Silver','10 Fak','12 Silver','1 North','10 Fak','2 Fake', '1 Red','1 Dog','2 Fake','1 White'],
'Score':['4','5','3','2','1','5','4','3','2','1',]})
所以我想这些行是唯一的值df.Location
第一列将是每个位置的数据条目数。我可以分别得到:
df[df['Location'] =='SF'].count()['Location']
df[df['Location'] =='NY'].count()['Location']
df[df['Location'] =='TX'].count()['Location']
df[df['Location'] =='DC'].count()['Location']
第二,第三和第四列我想在类(H,L,M)来总结不同类型。我知道我能做到这一点的:
#Second Col for NY
print (df[(df.Location =='NY') & (df.Class=='H')].count()['Class'])
#Third Col for NY
print (df[(df.Location =='NY') & (df.Class=='L')].count()['Class'])
#Fourth Col for NY
print (df[(df.Location =='NY') & (df.Class=='M')].count()['Class'])
我猜测这将与数据透视表的工作,但因为我使用的是数据帧都搞混了。
对于第五列,我想合并每个地址的唯一值的数量。例如,在纽约的值应该是2,因为有两个独特的价值观和'12银”
print (df[(df.Location =='NY')].Address)
>>>
0 12 Silver
2 12 Silver
3 1 North
Name: Address, dtype: object
的副本我想这可以通过groupby
被母鹿。但是我在使用它时总是感到困惑。我还可以使用.drop_duplicates
然后count
得到一个数值
第六栏应该是,如果该值小于整数4.因此,对纽约的值应该是
print (df[(df.Location =='NY') & (df.Score.astype(float) < 4)].count()['Score'])
那么,什么是好的方法来创建一个像这样的数据框,其中行是与上述列的唯一位置?
它应该是这个样子:
Pop H L M HH L4
DC 1 0 0 1 1 1
NY 3 2 1 0 2 2
SF 3 1 2 0 2 1
TX 3 1 2 0 3 2
因为我知道或多或少如何让每个组件,我可以通过一个阵列使用for loop
但是应该有这样做的更简单的方法。
这相当多,你想完成。你能显示输出DataFrame应该是什么? – DSM
@DSM确定等一下。 – ccsv
@DSM好的我花了一些时间来逐行计算它 – ccsv