mam plik CSV z wierszy wyglądać tak:danych munging w pand
ID,98.4,100M,55M,65M,75M,100M,75M,65M,100M,98M,100M,100M,92M,0#,0N#,
mogę go czytać z
#!/usr/bin/env python
import pandas as pd
import sys
filename = sys.argv[1]
df = pd.read_csv(filename)
Biorąc pod uwagę szczególny kolumna, chciałbym podzielić wiersze przez ID, a następnie wyprowadzić średnią i odchylenie standardowe dla każdego ID.
Mój pierwszy problem polega na tym, jak usunąć wszystkie nieliczbowe części z takich liczb, jak "100M" i "0N #", które powinny wynosić odpowiednio 100 i 0.
Próbowałem też zapętlenie nad odpowiednimi nagłówkami i korzystania
df[header].replace(regex=True,inplace=True,to_replace=r'\D',value=r'')
jak zasugerowano w Pandas DataFrame: remove unwanted parts from strings in a column.
zmienia to jednak 98,4 do 984.
Możliwy duplikat [pandy DataFrame: usunąć niechciane elementy z ciągów znaków w kolumnie] (http: // stackoverflow.com/questions/13682044/pandas-dataframe-remove-unwanted-parts-from-strings-in-a-column) – Evert
@Evert Dodano edycję, aby pokazać, w jaki sposób muszę radzić sobie z przecinkami dziesiętnymi. – eleanora
Duplikat podany na liście sugeruje użycie 'rstrip', z znakami, które chciałbyś usunąć. Więc ... 'rstrip ('MN #')' powinno działać ładnie dla twojego wejścia, używając lambda zasugerowanego w duplikacie (oczywiście, możesz pominąć część 'lstrip'). – Evert