pandas + matplotlib 을 이용하여 tistory 방문 관련 pie 차트 그리기
언어/python2020. 8. 4. 06:43
수정 중 ( 내용 추가될 예정 - 8월4일 늦은 오후에... )
pandas 에서 수식(예를 들어 sum 과 같은)으로 작성된 셀 값은 nan 으로 처리 된다. (???)
import pandas as pd
from matplotlib import pyplot as plt
excel_file = "./test.xlsx"
data_frame = pd.read_excel(excel_file, sheet_name=0)
result = data_frame[["성별", "방문자수"]]
person = {"남자": 0, "여자": 0}
for x in result.values:
person[x[0]] = person[x[0]] + x[1]
eng_person = {"man": person["남자"], "woman": person["여자"]}
category = [x for x in eng_person.keys()]
data = [eng_person[y] for y in category]
plt.pie(data, labels=category, autopct="%0.1f%%")
plt.show()
[ 엑셀 구조 ]
[ pie chart ]
'언어 > python' 카테고리의 다른 글
tar.gz 을 만들어보자 (0) | 2020.11.22 |
---|---|
# 기초 dictionary (0) | 2020.08.21 |
코로나 데이터 수집 (파이썬) (0) | 2020.07.18 |
네이버 python 지식인 답변 (0) | 2020.06.06 |
21대 국회의원 선거 크롤링 (0) | 2020.04.15 |
hadoop 싱글 노드 설치 (ubuntu)-파일첨부
hadoop2020. 7. 30. 00:04
참고사이트 - 한가지 추가 시킨 것 외에 그대로 따라 쳐가며 문서를 작성하였습니다.
Hadoop 2.7.2 설치 & 세팅 [Single-Node Cluster]
정리를 하지 않고 웹에서 이것 저것 다운 받아가며 테스트를 했더니, 결국 뭐가 원인인지도 모른 채 더 이...
blog.naver.com
후에 추가시킬 내용
=> hive
=> python 예제 코드
logstash ruby filter elasticsearch bulk insert
언어/Ruby2020. 7. 22. 00:22
input 부분
input {
exec {
command => "/usr/bin/python3 /home/kimjh/Desktop/logstashQuery/01/jsonRead.py"
interval => 120
}
}
python 코드 부분
json 파일
=> logstash 는 ndjson 형태의 파일을 read 한다. 하지만 다음은 일반적인 json 파일이다. 이를 읽기 위해 위와 같은 파이썬 코드를 짰고 그것을 logstash의 input에 넣었다.
$ cat test_sample.json
{
"2010": {"name2": "kim1"},
"2011": {"name2": "kim2"},
"2012": {"name2": "kim3"},
"2013": {"name2": "kim4"},
"2014": {"name2": "kim5"}
}
filter 부분
filter {
ruby {
code => '
require "elasticsearch"
require "json"
require "yaml"
esClient = Elasticsearch::Client.new
actionArray = Array.new
jsonDatas = event.get("message")
if ! jsonDatas.nil?
jsonArry = jsonDatas.split("\n")
jsonArry.each_with_index do |n, c|
#puts n.class
strHash = YAML.load(n)
hashData = {
"index" => {
"_index" => "sleep4",
"_id" => c,
"data" => {}
}
}
hashData["index"]["data"].merge!strHash
actionArray.push(hashData)
end
end
if ! actionArray.empty?
actionArray.each do |n|
p n
end
esClient.bulk body: actionArray
end
'
}
mutate {
remove_field => ["@timestamp", "host", "command", "@version"]
}
}
1) split : 문자열 분리
=> 특정 char를 기준으로 문자열을 자르게 된다.
2) each_with_index : python 과 비교하자면 enumerate 와 동일하게 작동
3) empty?
=> 데이터가 비어있는지 확인 비어있으면 true 반환 아니면 false 반환
4) push
=> array에 데이터 삽입
'언어 > Ruby' 카테고리의 다른 글
ruby json 파일 읽기 (0) | 2020.07.02 |
---|---|
ruby + elasticsearch indices/ health (0) | 2020.07.02 |
ruby elasticsearch client (0) | 2020.05.26 |
cea(ver3) (0) | 2016.02.27 |
class (0) | 2016.02.27 |