Apple Watch에서 얻은 생체 데이터를 CSV로 출력
5185 단어 AppleWatchiOS파이썬pandas
이게 뭐야
애플 시계와 iOS 기기에서 얻은 생체 데이터를 출력 할 수 있다는 소문을 들었으므로 시도했습니다.
사용한 것
Apple Watch series3
iPhone11 (iOS14.0.1)
생체 데이터 출력
출력은 간단합니다. iPhone의 「헬스 케어」로부터 출력합니다.
먼저 '헬스케어' 앱을 열고 개요 페이지의 오른쪽 상단에 있는 자신의 AppleID 아이콘을 탭합니다.
탭 후 표시되는 메뉴 하단의 "모든 건강 관리 데이터 내보내기"를 탭합니다.
처리가 실행되기 때문에 잠시 기다립니다. 완료되면 공유 메뉴가 표시되므로 Airdrop 등 원하는 방법으로 PC에 데이터를 가져갑니다.
출력 된 생체 데이터는 書き出したデータ.zip
로 ZIP 압축됩니다. 이것을 압축 해제하면 xml 형식의 파일 export.xml
과 export_cda.xml
가 나옵니다. export.xml
는 장치가 얻은 모든 생체 데이터를 기록합니다. 그러나 이것은 xml 형식의 데이터인 것이나, 보수나 심박수 등 복수의 정보가 정리해 1개의 파일에 기록되고 있기 때문에, 이대로라면 조금 다루기 어렵습니다.
CSV로 변환
이번에는이 Github 저장소에서 제공되는 Python 프로그램을 사용하여 csv로 변환했습니다.
준비
이 Github 저장소 소스 코드를 복제하고 다운로드하면 자신의 PC에 가져옵니다.
복제 된 리포지토리 applehealthdata-master
에 생체 데이터 xml 파일 export.xml
을 넣습니다.
실행
applehealthdata.py
를 실행하여 export.xml
를 csv 형식으로 변환합니다. 인수는 변환 할 xml 파일의 경로를 지정해야합니다. 즉 다음과 같은 느낌으로 실행합니다.
python applehealthdata.py ./export.xml
변환
현재 디렉토리에 csv 형식의 생체 데이터가 출력됩니다. 더욱 기쁘게도, 바이탈 데이터의 종류 마다 파일을 나누어 출력됩니다.
내용 확인
어떤 느낌으로 출력되고 있는지 확인해 보았습니다. 이번에는 일부러 pandas를 사용해 심박수에 관한 csv파일HeartRate.csv
의 상위 5건을 출력해 보겠습니다.
import pandas as pd
data = pd.read_csv("HeartRate.csv")
print(data.head())
출력은 다음과 같습니다 ...
sourceName sourceVersion device ... startDate endDate value
0 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:14:42 +0900 2020-08-08 00:14:42 +0900 67.0000
1 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:26:27 +0900 2020-08-08 00:26:27 +0900 67.2445
2 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:31:20 +0900 2020-08-08 00:31:20 +0900 60.0000
3 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:38:25 +0900 2020-08-08 00:38:25 +0900 57.0000
4 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:42:25 +0900 2020-08-08 00:42:25 +0900 62.0000
행이 너무 길어 도중에 생략되어 있습니다만, 취득한 디바이스에 관한 정보, 기록 일시, 계측 일시, 계측치가 기록되고 있습니다.
이 경우 측정은 심박수를 나타냅니다.
여담이지만 기록한 심박수의 최대치를 살펴보겠습니다.
import pandas as pd
data = pd.read_csv("HeartRate.csv")
max_value = data['value'].idxmax()
print(data.loc[max_value])
sourceName 〇〇のApple Watch
sourceVersion 6.2.8
device <<HKDevice: 0x000000000>, name:Apple Watch, ma...
type HeartRate
unit count/min
creationDate 2020-09-25 12:20:29 +0900
startDate 2020-09-25 12:15:04 +0900
endDate 2020-09-25 12:15:04 +0900
value 153
Name: 2169, dtype: object
요약
이번에는 AppleWatch가 취득한 생체 데이터를 출력해 보았습니다.
Reference
이 문제에 관하여(Apple Watch에서 얻은 생체 데이터를 CSV로 출력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KotaSuzuki0823/items/98f5fd101fab1f3187fa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
출력은 간단합니다. iPhone의 「헬스 케어」로부터 출력합니다.
먼저 '헬스케어' 앱을 열고 개요 페이지의 오른쪽 상단에 있는 자신의 AppleID 아이콘을 탭합니다.
탭 후 표시되는 메뉴 하단의 "모든 건강 관리 데이터 내보내기"를 탭합니다.
처리가 실행되기 때문에 잠시 기다립니다. 완료되면 공유 메뉴가 표시되므로 Airdrop 등 원하는 방법으로 PC에 데이터를 가져갑니다.
출력 된 생체 데이터는
書き出したデータ.zip
로 ZIP 압축됩니다. 이것을 압축 해제하면 xml 형식의 파일 export.xml
과 export_cda.xml
가 나옵니다. export.xml
는 장치가 얻은 모든 생체 데이터를 기록합니다. 그러나 이것은 xml 형식의 데이터인 것이나, 보수나 심박수 등 복수의 정보가 정리해 1개의 파일에 기록되고 있기 때문에, 이대로라면 조금 다루기 어렵습니다.CSV로 변환
이번에는이 Github 저장소에서 제공되는 Python 프로그램을 사용하여 csv로 변환했습니다.
준비
이 Github 저장소 소스 코드를 복제하고 다운로드하면 자신의 PC에 가져옵니다.
복제 된 리포지토리 applehealthdata-master
에 생체 데이터 xml 파일 export.xml
을 넣습니다.
실행
applehealthdata.py
를 실행하여 export.xml
를 csv 형식으로 변환합니다. 인수는 변환 할 xml 파일의 경로를 지정해야합니다. 즉 다음과 같은 느낌으로 실행합니다.
python applehealthdata.py ./export.xml
변환
현재 디렉토리에 csv 형식의 생체 데이터가 출력됩니다. 더욱 기쁘게도, 바이탈 데이터의 종류 마다 파일을 나누어 출력됩니다.
내용 확인
어떤 느낌으로 출력되고 있는지 확인해 보았습니다. 이번에는 일부러 pandas를 사용해 심박수에 관한 csv파일HeartRate.csv
의 상위 5건을 출력해 보겠습니다.
import pandas as pd
data = pd.read_csv("HeartRate.csv")
print(data.head())
출력은 다음과 같습니다 ...
sourceName sourceVersion device ... startDate endDate value
0 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:14:42 +0900 2020-08-08 00:14:42 +0900 67.0000
1 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:26:27 +0900 2020-08-08 00:26:27 +0900 67.2445
2 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:31:20 +0900 2020-08-08 00:31:20 +0900 60.0000
3 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:38:25 +0900 2020-08-08 00:38:25 +0900 57.0000
4 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:42:25 +0900 2020-08-08 00:42:25 +0900 62.0000
행이 너무 길어 도중에 생략되어 있습니다만, 취득한 디바이스에 관한 정보, 기록 일시, 계측 일시, 계측치가 기록되고 있습니다.
이 경우 측정은 심박수를 나타냅니다.
여담이지만 기록한 심박수의 최대치를 살펴보겠습니다.
import pandas as pd
data = pd.read_csv("HeartRate.csv")
max_value = data['value'].idxmax()
print(data.loc[max_value])
sourceName 〇〇のApple Watch
sourceVersion 6.2.8
device <<HKDevice: 0x000000000>, name:Apple Watch, ma...
type HeartRate
unit count/min
creationDate 2020-09-25 12:20:29 +0900
startDate 2020-09-25 12:15:04 +0900
endDate 2020-09-25 12:15:04 +0900
value 153
Name: 2169, dtype: object
요약
이번에는 AppleWatch가 취득한 생체 데이터를 출력해 보았습니다.
Reference
이 문제에 관하여(Apple Watch에서 얻은 생체 데이터를 CSV로 출력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KotaSuzuki0823/items/98f5fd101fab1f3187fa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
python applehealthdata.py ./export.xml
어떤 느낌으로 출력되고 있는지 확인해 보았습니다. 이번에는 일부러 pandas를 사용해 심박수에 관한 csv파일
HeartRate.csv
의 상위 5건을 출력해 보겠습니다.import pandas as pd
data = pd.read_csv("HeartRate.csv")
print(data.head())
출력은 다음과 같습니다 ...
sourceName sourceVersion device ... startDate endDate value
0 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:14:42 +0900 2020-08-08 00:14:42 +0900 67.0000
1 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:26:27 +0900 2020-08-08 00:26:27 +0900 67.2445
2 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:31:20 +0900 2020-08-08 00:31:20 +0900 60.0000
3 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:38:25 +0900 2020-08-08 00:38:25 +0900 57.0000
4 〇〇のApple Watch 6.2.8 <<HKDevice: 0x000000000>, name:Apple Watch, ma... ... 2020-08-08 00:42:25 +0900 2020-08-08 00:42:25 +0900 62.0000
행이 너무 길어 도중에 생략되어 있습니다만, 취득한 디바이스에 관한 정보, 기록 일시, 계측 일시, 계측치가 기록되고 있습니다.
이 경우 측정은 심박수를 나타냅니다.
여담이지만 기록한 심박수의 최대치를 살펴보겠습니다.
import pandas as pd
data = pd.read_csv("HeartRate.csv")
max_value = data['value'].idxmax()
print(data.loc[max_value])
sourceName 〇〇のApple Watch
sourceVersion 6.2.8
device <<HKDevice: 0x000000000>, name:Apple Watch, ma...
type HeartRate
unit count/min
creationDate 2020-09-25 12:20:29 +0900
startDate 2020-09-25 12:15:04 +0900
endDate 2020-09-25 12:15:04 +0900
value 153
Name: 2169, dtype: object
요약
이번에는 AppleWatch가 취득한 생체 데이터를 출력해 보았습니다.
Reference
이 문제에 관하여(Apple Watch에서 얻은 생체 데이터를 CSV로 출력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KotaSuzuki0823/items/98f5fd101fab1f3187fa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Apple Watch에서 얻은 생체 데이터를 CSV로 출력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KotaSuzuki0823/items/98f5fd101fab1f3187fa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)