在pandas数据帧

时间:2017-07-25 02:19:25

标签: python pandas split

我有以下数据框:

enter image description here

我试图摆脱百分号。为了做到这一点,我决定将一个函数应用于民主党和共和党专栏,并尝试按百分比符号分割()。以下代码尝试执行此操作:

gallup_2012[['Democrat/Lean Democratic', 'Republican/Lean 
Republican']].apply(lambda x: x.split('%')[0])

但是,当我尝试这样做时,我收到以下错误:

  

("'系列'对象没有属性'分裂'",你'发生在民主党/精益指数>民主党')

我不太清楚为什么会出现这种错误,因为我可以将其他功能应用到本系列中。只是split()函数不起作用。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:3)

df[[ ]]会返回一个数据框,因此如果您使用df.apply(),那么它将会应用于pd.Series。并且Series没有split()方法,但如果您使用df[ ]并使用df.apply(),那么您将能够达到您想要的效果。缺点是只能在一列上应用。

gallup_2012['Democrat/Lean Democratic'].apply(lambda x: x.split('%')[0])

答案 1 :(得分:1)

您可以在所需的列上使用str.replace方法

df["column"] = df["column"].str.replace("%", "")