早上好。
我的熊猫数据框如下:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:targetApi="o"
tools:context="in.sarabdroid.dailylatestsongs.MainActivity">
<LinearLayout
android:id="@+id/one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center">
<ImageView
android:id="@+id/imagepunjabisingletrack"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginHorizontal="10dp"
android:background="@drawable/punjabisingletracks"
android:contentDescription="@string/imgcontent" />
<ImageView
android:id="@+id/imagepunjabitop20weekly"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginHorizontal="10dp"
android:background="@drawable/punjabitoptwenty"
android:contentDescription="@string/imgcontent" />
</LinearLayout>
<LinearLayout
android:id="@+id/two"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_below="@+id/one">
<ImageView
android:id="@+id/imagehindisingletracks"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginHorizontal="10dp"
android:background="@drawable/hindisingletracks"
android:contentDescription="@string/imgcontent" />
<ImageView
android:id="@+id/imagehinditop20weekly"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginHorizontal="10dp"
android:background="@drawable/hinditoptwenty"
android:contentDescription="@string/imgcontent" />
</LinearLayout>
<!--LinearLayout
android:id="@+id/three"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_below="@+id/two">
<ImageView
android:id="@+id/imagewhatsappvidwo"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginHorizontal="10dp"
android:background="@drawable/punjabitop20weekly"
android:contentDescription="@string/imgcontent" />
<ImageView
android:id="@+id/imagevideos"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_marginHorizontal="10dp"
android:background="@drawable/punjabitop20weekly"
android:contentDescription="@string/imgcontent" />
</LinearLayout>-->
</RelativeLayout>
我想对c和a列进行分组,但是使用SQL的COUNT(DISTINCT)之类将c分组,并使用sum()进行分组,结果是:
public class Category extends Fragment {
//CustomAndroidGridViewAdapter adapter;
// GridView gv;
ImageView imgone, imgtwo, imgthree, imgfour;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.category, container,
false);
imgone =
(ImageView)rootView.findViewById(R.id.imagepunjabisingletrack);
imgtwo =
(ImageView)rootView.findViewById(R.id.imagepunjabitop20weekly);
imgthree =
(ImageView)rootView.findViewById(R.id.imagehindisingletracks);
imgfour =
(ImageView)rootView.findViewById(R.id.imagehinditop20weekly);
imgone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
((MainActivity)getActivity()).setCurrentItem (1, true);
}
});
imgtwo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
((MainActivity)getActivity()).setCurrentItem (2, true);
}
});
imgthree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(),
HindiSingleTracks.class);
getActivity().startActivity(intent);
}
});
imgfour.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(),
HindiTop20Weekly.class);
getActivity().startActivity(intent);
}
});
return rootView;
但是尝试groupby和stack的不同组合时,我无法达到该结果。
编辑 考虑到“ c”列存储的是ID号,因此升序仅是示例,因此max合计将不起作用。抱歉,不要再说了。
我认为可能的解决方案是将其分为两个不同的数据帧,进行分组,然后合并,但是我不确定这是否是最佳解决方案。
非常感谢您。
答案 0 :(得分:1)
您需要先聚合const removeElement = (state, elementId) => {
const newState = dissoc('b', state)
return pipe(
filter((currentDoc) => currentDoc.position > state[elementId].position),
clone,
forEachObjIndexed((value, key) => (value.position-=1), __),
merge(newState)
)(newState)
}
removeElement(state, 'b')
和list
,然后调用DataFrame.cumsum
:
sum
最后得到每个列表的唯一值的长度:
df = df.groupby('f').agg({'c':list, 'a':'sum'}).cumsum()
print (df)
c a
f
2 [154, 215, 1, 8000, 214] 288.32
3 [154, 215, 1, 8000, 214, 640] 576.32
4 [154, 215, 1, 8000, 214, 640, 780, 830, 8000] 873.32
5 [154, 215, 1, 8000, 214, 640, 780, 830, 8000, ... 1569.52
编辑:
df['c'] = df['c'].apply(lambda x: len(set(x)))
df = df.reset_index()
print (df)
f c a
0 2 5 288.32
1 3 6 576.32
2 4 8 873.32
3 5 10 1569.52