수정 중 ( 내용 추가될 예정 - 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

 

참고사이트 - 한가지 추가 시킨 것 외에 그대로 따라 쳐가며 문서를 작성하였습니다. 

https://m.blog.naver.com/PostView.nhn?blogId=chljy33&logNo=220782670564&proxyReferer=https:%2F%2Fwww.google.com%2F

 

Hadoop 2.7.2 설치 & 세팅 [Single-Node Cluster]

정리를 하지 않고 웹에서 이것 저것 다운 받아가며 테스트를 했더니, 결국 뭐가 원인인지도 모른 채 더 이...

blog.naver.com

후에 추가시킬 내용

=> hive

=> python 예제 코드

hadoop single node 설치.docx
0.42MB

 

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