지금까지 데이터 프레임의 각 열의 최대 값을 반환하는 코드가 있습니다. 지금까지 각 값을 별도의 목록으로 반환하므로 3 개의 값이 있으면 각 목록에 하나의 항목이 포함 된 3 개의 목록을 반환합니다.
내가 원하는 것은 모든 항목을 포함하는 하나의 목록을 반환하는 것입니다.
returned list:
[1]
[509]
[92]
[332]
[14]
expected result:
[1,509,92,332,14]
import pandas as pd
df = pd.Dataframe({'event_type': ['watch movie ', 'stay at home', 'swimming','camping','meeting'],
'year_month': ['2020-08', '2020-05', '2020-02','2020-06','2020-01'],
'event_mohafaza':['loc1','loc3','loc2','loc5','loc4'],
' number_person ':[24,39,20,10,33],})
grouped_df=pd.crosstab(df['year_month'], df[event_type])
print(type(grouped_df))
for x in grouped_df.columns:
mx = []
maxvalue =grouped_df[x].max()
mx.append(maxvalue)
print(mx)
사용할 필요가 없습니다 grouped_df.colums
. 데이터 프레임은 어쨌든 열을 반복 합니다 .
for x in grouped_df:
당신의에서 for
루프 당신은 때마다 목록을 삭제 mx
; 당신은 아마 그것을 지우려면 한 번만, 즉 하기 전에 당신의 for
루프 :
mx = []
for x in grouped_df:
당신의에서 for
루프 당신은 때마다 목록 인쇄 mx
(- 현재 - 요소 갓 지워지고 하나가 추가 참조). 모든 요소가 추가 된 후 , 즉 루프 후에 한 번만
인쇄하고 싶을 것입니다 .
따라서 수정 된 코드는 다음과 같아야합니다.
mx = []
for x in grouped_df:
maxvalue = grouped_df[x].max()
mx.append(maxvalue)
print(mx)
노트 :
Pandas의 데이터를 수동으로 반복하는 것은 항상 의심 스럽습니다 . 일반적으로 더 우아한 "pandasonic"솔루션이있는 경우가 많습니다.
귀하의 경우에는 간단히 인쇄 할 수 있습니다.
list(grouped_df.max())
또는
grouped_df.max().to_list()
( grouped_df.max()
A는 일련 의 list()
기능이나 .to_list()
방법은하게 목록 그것으로부터).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다