简体   繁体   English

熊猫:将特定功能应用于列并在新数据框中创建列

[英]Pandas: apply a specific function to columns and create column in new dataframe

I have a dataframe df1 , like this: 我有一个数据df1 ,像这样:

date        sentence
29/03/1029  i like you
.....

I want to create new dataframe df2 like this: 我想像这样创建新的数据df2

date         verb    object
29/03/2019   like    you
....

with the function like this: 具有如下功能:

def getSplit(df1):
    verbList = []
    objList  = []
    df2 = pd.DataFrame()
    for row in df1['sentence']:
        verb = getVerb(row)
        obj  = getObj(row)
        verbList.append(verb)
        objList.append(obj)
    df2 = df1[[date]].copy
    df2['verb'] = verbList
    df2['object'] = objList
    return df2

my function run well, but it's slow. 我的功能运行良好,但它是缓慢的。 Could someone help me improve the function so that can run faster? 有人可以帮我改善功能,使其运行更快吗?

Thank you 谢谢

You can Use apply method of pandas to process fast:- 您可以使用熊猫的apply方法来快速处理:-

getverb(row):
    pass  # Your function
getobj(row):
    passs # Your function
df2 = df1.copy()  # Making copy of your dataframe.

df2['verb'] = df2['sentence'].apply(getverb)
df2['obj'] = df2['sentence'].apply(getobj)
df2.drop('sentence', axis=1, inplace=True)  # Droping sentence column
df2

I hope it may help you. 希望对您有帮助。 (accept and upvote answer) (接受并认可答案)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM