简单使用pd.to_numeric
此解决方案的优点是使用pd.to_numeric
这是因为pd.to_numeric如果向pd.Series对象传递了一个pd.Series对象,则返回一个带有索引的pd.Series对象。这为我们提供了方便,可以方便地通过管道将结果发送到groupby。在pd.to_numeric(df.C).groupby([df.A, df.B]).sum()
A B
a d 3.1
e 4.0
c f 3.2
Name: C, dtype: float64
errors='coerce'
另外一个好处是,如果我们需要处理不能解析为float的字符串,我们可以使用参数errors='coerce'。这将强制不可解析的字符串np.nan,并且仍然允许有用的聚合。在
^{pr2}$
处理逗号pd.to_numeric(df.C.str.replace(',', ''), 'coerce').groupby([df.A, df.B]).sum()
设置df = pd.DataFrame(dict(
A=list('aaaac'),
B=list('ddeef'),
C='1.1| 2 |1| 3 |3.2 '.split('|')
))
您可以用pd.read_csv来解决这些问题中的许多from io import StringIO
import pandas as pd
txt = """DL_INSTITUCION,PERIODO_QUE_SE_R