샘플 팬더 Dataframe : 나는 dataframe를 만들기 위해 노력하고파이썬 팬더 : GROUPBY 합계와 연결하여 문자열
ID Name COMMENT1 COMMENT2 NUM 1 dan hi hello 1 1 dan you friend 2 3 jon yeah nope 3 2 jon dog cat .5 3 jon yes no .1
해당 ID도 NUM을 요약 COMMENT1 및 COMMENT2을 연결 NAME하여 그룹.
ID Name COMMENT1 COMMENT2 NUM 1 dan hi you hello friend 3 3 jon yeah yes nope no 3.1 2 jon dog cat .5
내가 이것을 사용하여 시도 :
input_df = input_df.groupby(['ID', 'NAME', 'COMMENT1', 'COMMENT2']).sum().reset_index()
그러나 그것은 작동하지 않습니다
이것은 내가 무엇을 찾고있다.
내가 이것을 사용하는 경우 :
input_df = input_df.groupby(['ID']).sum().reset_index()
그것은 NUM 열을 요약 다른 모든 열을 남긴다. 좀 더 많은 작업과 함께
import pandas as pd
def grouping_Cols_by_Cols(DF, grouping_Columns, num_Columns):
# numerical columns can mess us up ...
column_Names = DF.columns.tolist()
# so, convert all columns' values to strings
for column_Name in column_Names:
DF[column_Name] = DF[column_Name].map(str) + ' '
DF = DF.groupby(by=grouping_Columns).sum()
# NOW, convert the numerical string columns to an expression ...
for num_Col in num_Columns:
column_Names = DF.columns.tolist()
num_Col_i = column_Names.index(num_Col)
for i in range(len(DF)):
String = DF[num_Col].iloc[i]
value = eval(String.rstrip(' ').replace(' ','+'))
DF.iat[i,num_Col_i] = value
return DF
###############################################################
### Operations Section
###############################################################
df = pd.read_csv("UnCombinedData.csv")
grouping_Columns = ['ID','Name']
num_Columns = ['NUM']
df = grouping_Cols_by_Cols(df,grouping_Columns, num_Columns)
print df
, 정의 된 기능 수 :
[팬더 그룹 : 문자열 합집합을 얻는 방법] 가능한 복제본 (https://stackoverflow.com/questions/17841149/pandas-groupby-how-to-get-a-union-of-strings) - 허용 대답은 당신이 원하는 것을 얻기 위해 람다를 사용하는 방법을 보여줍니다 –