Tôi có tập tin với dòng CSV trông giống như:liệu munging trong gấu trúc
ID,98.4,100M,55M,65M,75M,100M,75M,65M,100M,98M,100M,100M,92M,0#,0N#,
tôi có thể đọc nó với
#!/usr/bin/env python
import pandas as pd
import sys
filename = sys.argv[1]
df = pd.read_csv(filename)
Cho một cột cụ thể, tôi muốn chia các hàng bởi ID và sau đó xuất độ lệch chuẩn và trung bình cho từng ID.
Vấn đề đầu tiên của tôi là, làm cách nào tôi có thể xóa tất cả các phần không phải là số từ các số như "100M" và "0N #" phải là 100 và 0 tương ứng.
Tôi cũng đã cố gắng lặp qua các tiêu đề có liên quan và sử dụng
df[header].replace(regex=True,inplace=True,to_replace=r'\D',value=r'')
như đề xuất trong Pandas DataFrame: remove unwanted parts from strings in a column.
Tuy nhiên điều này thay đổi 98,4 vào 984.
có thể trùng lặp của [Pandas DataFrame: loại bỏ các phần không mong muốn từ các chuỗi trong một cột] (http: // stackoverflow.com/questions/13682044/pandas-dataframe-remove-unwanted-parts-from-strings-in-a-column) – Evert
@Evert Đã thêm bản chỉnh sửa để hiển thị cách tôi cần đối phó với các dấu thập phân. – eleanora
Bản sao tôi liệt kê đề nghị sử dụng 'rstrip', với các ký tự bạn muốn xóa. Vì vậy ... 'rstrip ('MN #')' nên hoạt động tốt cho đầu vào của bạn, sử dụng lambda được đề xuất trong bản sao (tất nhiên, bạn có thể bỏ qua phần 'lstrip'). – Evert