#python #programowanie #programista15k #python3 #pandas #ghostscript
Czy ktoś może mi pomóc z kodem konwersji pliku PDF na XLSX?
Męczę się już kilka godzin i nie otrzymuję oczekiwanego rezultatu czyli przeniesienia zawartości PDF 1:1 do XLSX, ciągle otrzymuję zły format
To co otrzymuje na ten czas
Moj kod

W zdjeciach na imgur przedstawil co jest zawarte w pliku PDF, a co niestety otrzymuje w XLSX. Chodzi mi o konwersje pliku w taki sposob
to raczej nie jest możliwe, tzn - nie bez dużych nakładów czasowych - rozumiem że nie podoba ci się że tracisz formatowanie, kolory itd, to przeważnie nie są rzeczy które łatwo się przenosi
Cześć, mam problem z taką oto listą:

QTY Part number Part name Zone
2 1486E87-7 Wheel - Test B13
Specimen
2 1589E56-99 Bar - Non Test C18
Specimen -
For use only with
prod

próbuję ją przekonwertować na tabelę która wyglądała by tak jak na screenie poniżej. Macie jakieś wskazówki jak to zrobić w #pandas? Szukałem w internecie, pytałem o to ChatGPT i googlowego Barda, ale żaden nie jest w stanie
arct2 - Cześć, mam problem z taką oto listą:
QTY Part number Part name          Zone
...

źródło: Zrzut ekranu 2023-09-26 210802

Pobierz
@arct2: bo tam jest bałagan, trzeba ręcznie - przeczytać drugą linijkę (pierwszą można pominąć dać nazwy ręcznie)
rozdzielić po długości czyli liczbie znaków na 4 pola
potem przeczytać następną linijkę i jeżeli pierwsze pole jest puste, to to co jest w trzecin dopisać na końcu tego co jest w 3 polu
potem przeczytać następną i dopiero jeżeli pierwsze pole nie jest puste to traktować to jak nowy rekord
mam współrzędne obiektów w data frame w krotce

import pandas as pd
dane = pd.DataFrame({'coord':[(52.232,21.006)]})

potrzebuję to rozparsować na oddzielne pola x, y

zrobiłem tak, ale jak na to patrzę, to pewnie dałoby radę w jednym kroku policzyć obie?

dane['x'] = dane['coord'].apply(lambda c: c[1])
dane['y'] = dane['coord'].apply(lambda c: c[0])

#python #pandas
Mam taki problem, że próbuję sobie posegregować dane i zapisać je w jednym pliku CSV.
W skrócie:
- Robię listę wszystkich plików w zdefiniowanym folderze
- Przeszukuję tę listę plików, aby znaleźć pierwszą liczbę całkowitą znajdującą się przed literą R (to identyfikator baterii)
- Przeszukuję tę listę plików, aby znaleźć pierwszą liczbę stałoprzecinkową (powiedzmy, że zawsze z 1 miejscem po przecinku) -> to identyfikator napięcia
- Przeszukuję tę listę plików, aby znaleźć
mam dane godzinowe i chcę je zsumować do pełnych dni.

mam coś takiego:

1 2020-01-02 00:00:00 -13
2 2020-01-02 01:00:00 22
3 2020-01-02 02:00:00 65
4 2020-01-02 03:00:00 -17
5 2020-01-02 04:00:00 -4
6 2020-01-02 05:00:00 5

i chcę uzyskać nowy dataframe, który będzie wyglądał tak:

1 2020-01-02 00:00:00 -58 <--suma wartości godzinowych z tego dnia
danych jest dużo, na kilkanaście lat. jakieś pomysły jak mogę to zrobić?

#python #sql #pandas
@maciekXDDD: nie wiem jak wyglądają twoje dane ale na logikę potrzebujesz niedzielę oznaczyć jako poniedziałek i na tym zagregować/zgrupować. W zależności jakiego dialektu sql używasz mozesz uzyc funkcji np. Datename w sql serverze które ci zwróci dzień tygodnia.

Druga opcja to zrobić temp tabele/cte z zagregowanymi danymi dla niedziel.
I nastepnie polaczyc ja z twoja tabela glowna w ten sposob ze laczysz po tabelaglowna.dzien - 1 = tabelazniedziela.dzien (czyli dla kazdego
natomiast potrzebuje wartości z niedzieli dodać do wartości poniedziałkowej.


@maciekXDDD: Mając już dane w pandas napisałbym sobie funkcję sprawdzającą czy dany dzień jest niedzielą i zamienił ten dzień na poniedziałek, co z resztą powyżej już wskazano.

from datetime import datetime as dt
from datetime import timedelta as td
def is_sunday(date):
if date.isoweekday() == 7:
return date+td(days=1)
else:
return date
i dalej już w dataframe:

df['nowadata'] = df.loc[:,'nazwakolumnyzdata'].map(is_sunday)
#datascience

Hej Mirki, tak sobie dlubie proste ETL w #pandas #numpy #python i glowkuje jak tu skrocic czas ladowania trzech duzych (1GB kazdy 900k x 200) CSV. Jedyne co przychodzi mi jeszcze do glowy to dorzucenie multiprocesingu bo duzo sie dzieje, z %pruna widze ze w tej chwili CPU jest waskim gardlem. Probowalem w prymitywny sposob zaladowac to w multi rozrzucajac kazdy plik na osobny proces ale naturalnie zabraklo RAMu, wiem, ze
@Oake: @heniek_8:

W sumie to nie trzeba dodawać kolumny:

df["new_col"] = (df["Adj Open"] - df["Adj Close"].shift(periods=1))/df["Adj Close"].shift(periods=1)

i dodatkowe pytanie: czy da się wywołać jakoś jedynie wartość indeksu?


Co masz na myśli? Indeks DataFrame?
Próbuję otworzyć plik w pandas:

import pandas as pd
df = pd.readcsv('D:\podglad\podglad.xlsx', encoding='Windows-1250', onbadlines='skip')
print(df.to
string())

Dla encoding='Windows-1250' wyskakuje błąd:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 16: character maps to

Dla encoding='utf8':
UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 14-16: invalid continuation byte

Dla encoding='Latin-1':
Otwiera ale wyskakują krzaki

Dla encoding='iso-8859-1':
Otwiera ale wyskakują krzaki

Nie mam już pomysłów co by jeszcze spróbować.
Excel otwiera
Potrzebuję w pliku excel zhashować kolumny password i pesel. W pycharm taki kod wpisuję i po uruchomieniu wyrzuca jakieś errory i nic. Plik users.csv rozumiem, że ma być w tym folderze co projekt pycharmowy z plikiem python?
Help pls
Nie zajmuję się programowaniem więc proszę mieć to na uwadze.

import pandas as pd
import hashlib

# reading CSV input
df = pd.readcsv('users.csv')

# hashing
df['password'] = df['password'].apply(lambda x:
hashlib.sha256(x.encode('utf-8')).hexdigest())
df['pesel'] =
#pandas Jak unikacie wielokrotnego uzywanie .loc
np.
tabela.loc[warunek, kolumna]=tabela.loc[warunek, kolumna]+tabela.loc[warunek, kolumna_inna]

Jestem pewien, ze kiedys widzialem jakies sprytne obejscie, ale nie pamietam jakie ;)
#pandas #python
Mam dwie tabele (tab1 - kolumny A, B; tab2- kolumny C, D). Jedna ma 2 wiersz3, druga - trzy. Dla ulatwienia - jedna ma wartosci x, a druga - y.Chce je połączyc wierszami (dokladnie w kolejnosci wystepowania w tabeli), a brakujace wiersze wypelnic np. 'z'.
Pożądany efekt końcowy:
A B C D
x x y y
x x y y
z z y y

(moze byc tez None zamiast 'z',
@IamHater: Mam (jednak rozmowa z kims pomaga :P )
te tabele to wyimki z wiekszych tabel. Skubany patrzyl na indeks wierszy oryginalnej tabeli i brał go pod uwage...

5h siedzenia... (concat na poczatku probowalem)... :/
Cześć, mam problem - mam dosc duzy plik csv - na tyle duzy, ze samo wczytywanie trwa kilkanascie sekund (a bedzie bardzieł puchł). mocno spowalni mi dzialanie aplikacji - poustawialem juz recznie rodzaje danych w kolumnach, wstawilem gdzuie sie da dane kategoryczne, ale nadal wolno. W zwiazku w tym mam pytaie (jak na razie nic nie znalalem na ten temat w sieci): czy jest opcja wczytywania z pliku csv tylko interesujacyh mnei