판다 열 합계 가져오기
저는 아래와 같이 여러 개의 열이 있는 Pandas 데이터 프레임을 가지고 있으며, 총 열 수를 얻고 싶습니다.MyColumn
.
print df
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
내 시도:
다음을 사용하여 열의 합계를 구하려고 했습니다.groupby
그리고..sum()
:
Total = df.groupby['MyColumn'].sum()
print Total
이로 인해 다음 오류가 발생합니다.
TypeError: 'instancemethod' object has no attribute '__getitem__'
예상 출력
다음과 같은 결과가 나올 것으로 예상했습니다.
319
아니면 다른 방법으로df
라는 제목의 새 행으로 편집됨TOTAL
합계 포함:
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
TOTAL 319
다음을 사용해야 합니다.
Total = df['MyColumn'].sum()
print(Total)
319
그러면 다음과 함께 사용합니다.Series
이 경우 인덱스는 합계해야 하는 특정 열과 동일하게 설정해야 합니다.
df.loc['Total'] = pd.Series(df['MyColumn'].sum(), index=['MyColumn'])
print(df)
X MyColumn Y Z
0 A 84.0 13.0 69.0
1 B 76.0 77.0 127.0
2 C 28.0 69.0 16.0
3 D 28.0 28.0 31.0
4 E 19.0 20.0 85.0
5 F 84.0 193.0 70.0
Total NaN 319.0 NaN NaN
스칼라 값을 전달하면 모든 행의 값이 채워지기 때문입니다.
df.loc['Total'] = df['MyColumn'].sum()
print(df)
X MyColumn Y Z
0 A 84 13.0 69.0
1 B 76 77.0 127.0
2 C 28 69.0 16.0
3 D 28 28.0 31.0
4 E 19 20.0 85.0
5 F 84 193.0 70.0
Total 319 319 319.0 319.0
다른 두 가지 솔루션은 와 함께 제공되며 아래의 응용 프로그램을 참조하십시오.
df.at['Total', 'MyColumn'] = df['MyColumn'].sum()
print(df)
X MyColumn Y Z
0 A 84.0 13.0 69.0
1 B 76.0 77.0 127.0
2 C 28.0 69.0 16.0
3 D 28.0 28.0 31.0
4 E 19.0 20.0 85.0
5 F 84.0 193.0 70.0
Total NaN 319.0 NaN NaN
df.ix['Total', 'MyColumn'] = df['MyColumn'].sum()
print(df)
X MyColumn Y Z
0 A 84.0 13.0 69.0
1 B 76.0 77.0 127.0
2 C 28.0 69.0 16.0
3 D 28.0 28.0 31.0
4 E 19.0 20.0 85.0
5 F 84.0 193.0 70.0
Total NaN 319.0 NaN NaN
참고: Pandas v0.20 이후,ix
더 이상 사용되지 않습니다.사용하다loc
또는iloc
대신.
여기서 사용할 수 있는 다른 옵션:
df.loc["Total", "MyColumn"] = df.MyColumn.sum()
# X MyColumn Y Z
#0 A 84.0 13.0 69.0
#1 B 76.0 77.0 127.0
#2 C 28.0 69.0 16.0
#3 D 28.0 28.0 31.0
#4 E 19.0 20.0 85.0
#5 F 84.0 193.0 70.0
#Total NaN 319.0 NaN NaN
사용할 수도 있습니다.append()
방법:
df.append(pd.DataFrame(df.MyColumn.sum(), index = ["Total"], columns=["MyColumn"]))
업데이트:
모든 숫자 열의 합계를 추가해야 하는 경우 다음 중 하나를 수행할 수 있습니다.
사용하다append
기능적인 방식으로 이 작업을 수행하려면(원래 데이터 프레임을 변경하지 않음):
# select numeric columns and calculate the sums
sums = df.select_dtypes(pd.np.number).sum().rename('total')
# append sums to the data frame
df.append(sums)
# X MyColumn Y Z
#0 A 84.0 13.0 69.0
#1 B 76.0 77.0 127.0
#2 C 28.0 69.0 16.0
#3 D 28.0 28.0 31.0
#4 E 19.0 20.0 85.0
#5 F 84.0 193.0 70.0
#total NaN 319.0 400.0 398.0
사용하다loc
데이터 프레임을 변경하는 방법:
df.loc['total'] = df.select_dtypes(pd.np.number).sum()
df
# X MyColumn Y Z
#0 A 84.0 13.0 69.0
#1 B 76.0 77.0 127.0
#2 C 28.0 69.0 16.0
#3 D 28.0 28.0 31.0
#4 E 19.0 20.0 85.0
#5 F 84.0 193.0 70.0
#total NaN 638.0 800.0 796.0
데이터 프레임의 길이를 구하는 것과 유사합니다.len(df)
다음은 판다와 블레이즈에게 효과가 있었습니다.
Total = sum(df['MyColumn'])
또는 그 대신에
Total = sum(df.MyColumn)
print Total
열을 합치는 두 가지 방법이 있습니다.
데이터 집합 = pd.read_csv("data.csv")
1: 합(평균).열n_name)
2: 데이터 집합['Column_Name'].sum()
이것에 문제가 있다면 수정 부탁드립니다.
다른 옵션으로 아래와 같은 작업을 수행할 수 있습니다.
Group Valuation amount
0 BKB Tube 156
1 BKB Tube 143
2 BKB Tube 67
3 BAC Tube 176
4 BAC Tube 39
5 JDK Tube 75
6 JDK Tube 35
7 JDK Tube 155
8 ETH Tube 38
9 ETH Tube 56
아래 스크립트에서 위의 데이터에 사용할 수 있습니다.
import pandas as pd
data = pd.read_csv("daata1.csv")
bytreatment = data.groupby('Group')
bytreatment['amount'].sum()
언급URL : https://stackoverflow.com/questions/41286569/get-total-of-pandas-column
'programing' 카테고리의 다른 글
암호 재설정을 구현하는 방법 (0) | 2023.06.08 |
---|---|
Openpyxl 및 숨겨진/숨김 해제된 Excel 워크시트 (0) | 2023.06.08 |
추가 데이터 로드 버튼 (0) | 2023.06.08 |
선택 2 값을 재설정하고 자리 표시자 표시 (0) | 2023.06.03 |
TextView 내에 여러 스타일을 사용할 수 있습니까? (0) | 2023.06.03 |