Wejście do pd.read_clipboard()
Błąd parsowania, zaktualizuj wiele kolumn w 1 linia
Ratanhia ,30c x2, 200c x2
Aloe ,30c x2, 200c x2
Nitric Acid ,30c x2, 200c x 2
Sedum Acre ,200c x2, 30c x2
Paeonia ,200c x2, 30c x2
Sulphur ,200c x2, 30c x2
Hamamelis ,30c x1, 200c x1
Aesculus ,30c x1, 200c x1
Kod:
import pandas as pd
df = pd.read_clipboard(header=None, sep=',')
df.columns = ['Medicine','power30c','power200c']
df.power30c=df.power30c.apply(lambda x: x[-1])
df.power200c=df.power200c.apply(lambda x: x[-1])
print df
wyjścia:
Medicine power30c power200c
0 Ratanhia 2 2
1 Aloe 2 2
2 Nitric Acid 2 2
3 Sedum Acre 2 2
4 Paeonia 2 2
5 Sulphur 2 2
6 Hamamelis 1 1
7 Aesculus 1 �
Pytania:
- Dlaczego to
�
w ostatnim rzędzie? - Jak zmodyfikować więcej niż 1 kolumnę w 1 linii?
df[['power30c','power200c']] = df[['power30c','power200c']].apply(lambda x: x[-1])
Throws error:
ValueError: Length mismatch: Expected axis has 1 elements, new values have 3 elements
Python Wersja: 2.7, Pandy: 0,19, ipython: 4
co się dzieje, jeśli istnieje nowa linia po ostatniej linii? – piRSquared
@piRSquared \t Rozwiązany. Skopiowałem ten tekst z WhatsApp. To był powód. Ostatnie 'x1' było czymś innym pod maską. – MYGz