728x90
반응형

filenames = sg.popup_get_file('Select Files', title = "File Selector" , mutilple_files = True)

filenames = filenames.split(";")
#세미콜론 기준으로 파일정보들을 가져옴
#ex : a;b;c;d;e;.....
filenames = filename.split("/")
#filename[-1]  파일명만 획득
# 디렉토리 이름의 '/' 삭제 처리후
리스트의 마지막 항목을 가져오면
파일 이름만 획득

728x90
반응형
728x90
반응형

 티스토리 

 

PysimpleGUI로 Ticket 예매창을 만들어보자. 

아래 그림과 같은 달력 모듈과 함께 여러가지 입력창으로 심플한 Ticket 예매창을 만들어보자


1. 테마설정 방법

  - sg.theme_previewer(columns=8, scrollable=True) 를 실행하여 아래 그림처럼 원하는 테마를 설정할수있다.
  - sg.theme('Reds') # 원하는 테마의 이름을 입력하여 설정

 

2. 구현 코드리뷰

구현한 코드 내용을 자세하게 리뷰를 해보자.

import PySimpleGUI as sg

# sg.theme_previewer(columns=8, scrollable=True) # 원하는 창 테마 종류를 확인 

sg.theme('Reds') # 원하는 테마의 이름을 입력하여 설정

layout = [[sg.Text("Type your name"), sg.Input(key='-NAME-', do_not_clear=True, size=(15, 1))],
          [sg.Text("Type your Ticket Number"), sg.Input(key='-TICKET_NUMBER-', do_not_clear=True, size=(10, 1))],
          [sg.Input(key='-DAY1-', size=(30,1)), sg.CalendarButton("Book a DATE", close_when_date_chosen=True,  target='-DAY1-', location=(0,0), no_titlebar=False )],
          [sg.Text('Select your Items',size=(30, 1), font='Courier 15',justification='left')],
          [sg.Listbox(values=['Item1', 'Item2', 'Item3', 'Item4', 'Item5', 'Item6'], size=(40, 5), select_mode='single', key='-ITEMS-')],
          [sg.Radio("OPTION1", "RADIO", key='-OPT1-'), sg.Radio("OPTION2", "RADIO", key='-OPT2-')],
          [sg.Button('Book a Ticket'), sg.Exit()]
]

window = sg.Window('costzerocode.tistory.com', layout)

def ticket_Info(values):
    ticket_var = "-----Result of Information-----"
    name = '\nName: ' + values['-NAME-']
    ticket_var += name
    TICKET_NUMBER = '\nTicket Number: ' + values['-TICKET_NUMBER-']
    ticket_var += TICKET_NUMBER
    option = '\noption: '
    if values['-OPT2-']:
        option += 'OPT2'
    else:
        option += 'OPT1'
    ticket_var += option
    item_val = '\nITEM : ' + values['-ITEMS-'][0]
    ticket_var += item_val
    return ticket_var
   


while True:
    event, values = window.read()
    if event in (sg.WIN_CLOSED, 'Exit'):
        break
    elif event == 'Book a Ticket':
        sg.popup(ticket_Info(values))
window.close()

마무리

- 이번 포스팅은 PySimpleGUI로 달력을 활용한 간단한 메뉴를 만드는법에 대해 알아봤습니다. 

728x90
반응형
728x90
반응형

 티스토리 

 

[파이썬초보] PANDAS pd.merge() 데이터 열 합치기

1. pd.merge()

Python의 Pandas 라이브러리에서 pd.merge() 함수는 공통 열을 기준으로 두 개 이상의 DataFrame을 결합하는 데 사용됩니다. 열을 기준으로 DataFrame을 병합하는 방법에 대한 예시를 제공합니다

 

이 예시에서 df1과 df2라는 두 개의 DataFrame이 있습니다. 두 DataFrame은 'ID'라는 공통 열을 갖고 있습니다. 이 공통 열을 기준으로 DataFrame을 병합하기 위해 pd.merge() 함수를 사용하고 on 매개변수를 'ID'로 지정합니다.
결과로 나오는 DataFrame merged_df에는 'ID' 값이 일치하는 df1과 df2의 행이 포함됩니다. 'ID' 열은 DataFrame 병합의 키로 사용됩니다. 병합된 DataFrame은 두 DataFrame의 모든 열을 포함합니다.
출력 결과는 다음과 같습니다.

 

Result
Result

2. 결론

기본적으로 pd.merge()는 내부 조인을 수행하여 두 DataFrame 사이의 공통된 행만 포함합니다. 두 DataFrame의 모든 행을 포함하려면 how 매개변수를 'outer'로 설정하여 외부 조인을 수행할 수 있습니다.
또한, on 매개변수에 열 이름의 리스트를 전달하여 여러 열을 기준으로 DataFrame을 병합할 수도 있습니다. 예를 들어 on=['column1', 'column2']와 같이 사용할 수 있습니다.
pd.merge() 함수는 왼쪽 조인, 오른쪽 조인 및 여러 열에 대한 병합과 같은 다양한 유형의 병합을 처리하는 옵션을 제공합니다. 

마무리

- pd.merge() 함수와 해당 매개변수에 대한 자세한 내용은 Pandas 문서를 참조하시기 바랍니다.

 

궁금한 사항은 댓글을 통해서 남겨 주시면 답변을 드리고 있으며,

조금이라도 도움이 되셨다면 채널이 성장하는 데 큰 도움이 되어 주시길 바랍니다.

 

감사합니다.

 

 

728x90
반응형
728x90
반응형

`glob` 모듈은 특정 패턴과 일치하는 파일 및 디렉터리를 찾기 위해 사용되는 Python 모듈입니다. 이 모듈은 Unix 셸에서 사용되는 와일드카드 패턴과 유사한 방식으로 파일을 검색하고 이름을 가져오는 편리한 방법을 제공합니다.

`glob` 모듈을 사용하려면 먼저 import해야 합니다:

```python

import glob

```

다음은 `glob` 모듈의 사용법을 설명하는 몇 가지 예시입니다:

1. 디렉터리에서 모든 Python 파일 가져오기: ```python

import glob

python_files = glob.glob('*.py') print(python_files)

```

이 코드는 현재 디렉터리에서 확장자가 `.py`인 모든 파일을 찾아서 `python_files` 리스트에 이름을 저장합니다.

2. 디렉터리와 하위 디렉터리에서 모든 파일 찾기:

```python

import glob

all_files = glob.glob('**', recursive=True) print(all_files)

```

이 코드는 현재 디렉터리와 그 하위 디렉터리에 있는 모든 파일의 이름을 가져옵니다. `**` 패턴은 임의의 중첩된 디렉터리 구조와 일치하며, `recursive=True`는 `glob`에게 재귀적으로 검색하도록 지시합니다.

3. 특정 디렉터리에서 모든 텍스트 파일 찾기:

```python

import glob

text_files = glob.glob('/경로/디렉터리/*.txt') print(text_files)

```

이 예시는 특정 디렉터리에서 확장자가 `.txt`인 모든 파일을 검색하는 방법을 보여줍니다. `/경로/디렉터리` 부분을 실제 디렉터리 경로로 대체해야 합니다.

4. 디렉터리에서 모든 하위 디렉터리 찾기: ```python

import glob

directories = glob.glob('/경로/디렉터리/*/') print(directories)

```

이 코드는 특정 디렉터리에서 모든 하위 디렉터리의 이름을 가져옵니다. `*/` 패턴은 임의의 디렉터리와 일치하며, `/경로/디렉터리` 부분을 실제 디렉터리 경로로 대체해야 합니다.

5. 여러 확장자를 기준으로 파일 필터링하기

```python

import glob

files = glob.glob('/경로/디렉터리/*.{txt,csv}') print(files)

```

이 예시에서는 `/경로/디렉터리`에서 확장자가 `.txt` 또는 `.csv`인 파일과 일치하는 `*.{txt,csv}` 패턴을 사용합니다.

이는 Python에서 `glob` 모듈을 사용하여 파일 및 디렉터리를 검색하는 방법에 대한 일부 예시입니다. `glob` 함수는 다양한 와일드카드 패턴과 옵션을 지원하므로 자세한 내용은 공식 Python 문서를 참조하시기 바랍니다: [https://docs.python.org/3/library/glob.html](https://docs.python.org/3/library/glob.html)

728x90
반응형

'PYTHON 파이썬 > 문법(Syntax)' 카테고리의 다른 글

[python] dictionary 딕셔너리  (0) 2024.01.15
[Python/파이썬] 리스트/LIST들 중에서 중복된 값 찾기  (0) 2023.08.05
input()  (0) 2023.06.18
조건문(Conditional Statement)  (0) 2023.06.17
변수(Variables)  (0) 2023.06.17
728x90
반응형

파이썬의 판다스 라이브러리에서 `pd.read_csv`를 사용하는 방법에 대한 예제입니다.

- `skiprows` 매개변수를 이용합니다.

아래 테이블의 위의 행 두개를 날리고 다음 행부터 데이터로 만들 경우 skiprows를 사용

생성자 : costzerocode      
제목 : 내맘대로 차량 구매 우선순위      
idx 자동차 브랜드 은행 대출 점수
1 기아 KB 80
2 현대 우리 90
3 쌍용 신한 80


코드 예시 
import pandas as pd
# CSV 파일을 읽고 첫 두 줄을 건너뜁니다.
df = pd.read_csv('data.csv', skiprows=2) # 결과로 나온 DataFrame을 출력합니다.
print(df)

이 예제에서 `pd.read_csv` 함수는 'data.csv'라는 CSV 파일을 읽습니다. `skiprows` 매개변수는 `2`으로 설정되어 있어, CSV 파일을 읽는 동안 첫 두 줄을 건너뛰도록 합니다.

결과로 나온 DataFrame은 `df`라는 변수에 저장되며, 필요에 따라 해당 DataFrame에서 다양한 작업을 수행하거나 내용을 표시할 수 있습니다.

실제 CSV 파일의 경로에 맞게 `'data.csv'`를 수정해주시고, 필요에 따라 `skiprows`의 값을 조정해주세요.

728x90
반응형
728x90
반응형

다음은 Python에서 pandas 라이브러리와 함께 dateutil 모듈을 사용하는 예시입니다: python

Copy code

import pandas as pd

from dateutil.parser import parse # 날짜 문자열의 리스트 생성

date_strings = ['2022-01-01', '2022-02-01', '2022-03-01', '2022-04-01'] # dateutil의 parse 함수를 사용하여 날짜 문자열 파싱 parsed_dates = [parse(date) for date in date_strings] # 파싱된 날짜로 pandas Series 생성

dates_series = pd.Series(parsed_dates) # pandas를 사용하여 날짜 기반 작업 수행

# 예를 들어, 각 날짜에서 월을 추출할 수 있습니다.

months = dates_series.dt.month

# 파싱된 날짜와 해당 월 출력

for date, month in zip(dates_series, months): print("날짜:", date, " 월:", month) 이 예시에서는 필요한 모듈인 pandas와 dateutil.parser를 import합니다. 그런 다음, 파싱할 날짜 문자열의 리스트를 생성합니다. 리스트 컴프리헨션을 사용하여 날짜 문자열을 순회하면서 dateutil의 parse 함수를 사용하여 파싱합니다. 이 함수는 자동으로 날짜 문자열의 형식을 감지하고 datetime 객체로 변환합니다.

다음으로, 파싱된 날짜를 pd.Series 생성자에 전달하여 pandas Series를 생성합니다. 이를 통해 pandas가 제공하는 강력한 날짜 및 시간 기능을 활용할 수 있습니다. 예시에서는 Series의 dt.month 속성을 사용하여 각 날짜의 월 구성 요소를 추출합니다. 이는 월 값을 포함하는 새로운 Series를 반환합니다.

마지막으로, 반복문을 사용하여 파싱된 날짜와 해당하는 월을 출력합니다.

pandas와 dateutil을 결합하면 DataFrame이나 Series에서 날짜 및 시간 데이터를 효율적으로 처리하고 조작할 수 있으며, 다양한 작업을 수행하고 분석이나 추가 처리를 위해 특정 날짜 구성 요소를 추출할 수 있습니다.

728x90
반응형
728x90
반응형

1줄요약 : query문에서 @을 사용해서 변수를 사용하게함,

`@` 기호는 Python의 `query()` 메서드에서 사용되는 특별한 구문입니다. 이 구문은 플레이스홀더(placeholder)로 사용되며, 쿼리 문자열 안에서 변수 값을 참조하는 데 사용됩니다.

예를 들어, `df.query('column_name == @foo')`에서 `@foo`는 변수 `foo`의 값을 참조합니다. 이렇게 변수 값을 쿼리 문자열에 넣을 수 있어 더 동적인 쿼리를 작성할 수 있게 됩니다.

`query()` 메서드를 호출할 때 변수 `foo`에 원하는 값이 할당되어 있어야 합니다. 예를 들어: ```python

foo = "costzero"

df.query('column_name == @foo')

```

위의 예시에서 `foo` 변수는 "costzero"로 할당되어 있으므로, `query()` 메서드는 `column_name ` 열에서 "costzero"와 일치하는 행을 필터링할 것입니다.

`@` 기호를 사용하는 이러한 기능은 pandas 라이브러리의 DataFrame 객체에서 사용할 수 있습니다. DataFrame의 `query()` 메서드를 사용하여 행을 필터링하는 데 편리하게 사용할 수 있습니다.

728x90
반응형
728x90
반응형

Information and facts:

User: What is the capital of France?

ChatGPT: The capital of France is Paris. It is known for its iconic landmarks like the Eiffel Tower, Louvre Museum, and Notre-Dame Cathedral.

Definitions and explanations:

User: What is artificial intelligence?

ChatGPT: Artificial intelligence refers to the simulation of human intelligence in machines that are programmed to think and learn like humans. It encompasses various techniques such as machine learning, natural language processing, and computer vision.

Creative writing:

User: Write a short story about a lonely astronaut.

ChatGPT: Once upon a time, in the vast expanse of outer space, there was an astronaut named Alex. After years of exploring distant galaxies, Alex found himself feeling increasingly lonely. He longed for companionship, dreaming of the day he would encounter another being among the stars...

Opinion and subjective discussions:

User: What is the best movie of all time?

ChatGPT: Opinions about the best movie of all time vary greatly among individuals. Some popular choices include "The Godfather," "Citizen Kane," and "The Shawshank Redemption." It ultimately depends on personal taste and preferences.

Exploring hypothetical scenarios:

User: What if humans could breathe underwater?

ChatGPT: If humans could breathe underwater, it would revolutionize our lives in many ways. We could explore the depths of the oceans, uncovering hidden treasures and studying marine life up close. It would open up new opportunities for underwater architecture, travel, and even habitation.

(한글) 다음은 ChatGPT의 기능을 보여주기 위한 몇 가지 예시입니다: 정보와 사실:

사용자: 프랑스의 수도는 어디인가요?

ChatGPT: 프랑스의 수도는 파리입니다. 에펠탑, 루브르 박물관, 노트르담 대성당과 같은 상징적인 랜드마크로 유명합니다.

정의와 설명:

사용자: 인공지능이란 무엇인가요?

ChatGPT: 인공지능은 인간이 생각하고 학습하는 것과 유사하게 프로그래밍된 기계에서의 인간 지능 시뮬레이션을 의미합니다. 기계 학습, 자연어 처리, 컴퓨터 비전과 같은 다양한 기술을 포함하고 있습니다.

창의적인 글쓰기:

사용자: 고독한 우주비행사에 대한 짧은 이야기를 써주세요.

ChatGPT: 한때, 광활한 우주 공간에 한 우주비행사인 알렉스가 있었습니다. 멀리 떨어진 은하계를 탐험한 후, 알렉스는 점점 더 외로움을 느끼기 시작했습니다. 그는 동반자가 필요하다고 생각하며, 별 사이에서 다른 존재를 만나게 되는 날을 꿈꾸며...

의견과 주관적인 토의:

사용자: 역사상 가장 좋은 영화는 무엇인가요?

ChatGPT: 역사상 가장 좋은 영화에 대한 의견은 사람마다 크게 달라집니다. "대부", "시민 케인", "쇼생크 탈출"과 같은 인기있는 선택지들이 있습니다. 최종적으로 개인의 취향과 선호도에 따라 다릅니다.

가정의 상황 탐구:

사용자: 인간이 수중에서 숨을 쉴 수 있다면 어떨까요?

ChatGPT: 인간이 수중에서 숨을 쉴 수 있다면, 우리의 삶을 여러 가지 방식으로 혁신할 것입니다. 우리는 해양의 심연을 탐험하며, 숨겨진 보물을 발견하고 해양 생물을 가까이서 연구할 수 있을 것입니다. 수중 건축, 여행, 심지어 주거에 새로운 기회를 제공할 것입니다.

ChatGPT는 유용하고 정보를 제공하기 위해 노력하지만, 때로는 부정확하거나 헛소리같은 답변을 생성할 수 있습니다. AI 모델과 대화할 때 신뢰할 수 있는 출처에서 정보를 확인하고 비판적 사고를 사용하는 것이 좋습니다.

728x90
반응형

+ Recent posts