我有一个Pandas数据框,两列“text”和“status”:
text,status
Great!!, pos
I dunno., neut
Bad.,neg
大约有6000行。
文本字段由短句组成。我做了一个
dataset["text"] = dataset["text"].apply(strip_punctuation)
其中strip_punctuation
进行一些字符串操作并返回一个字符串。函数快速地对字符串起作用,但是当我把它放在应用结果中是一个灾难,我不知道为什么。
任何帮助表示赞赏!
答案 0 :(得分:3)
dataframe.apply本质上是对整个数据帧进行顺序扫描,并将您的函数应用于每一行。如果您的数据帧很大,那就太慢了。
使用如下的矢量化方法可以提高性能。但是你会得到更复杂/更少功能的权衡。
#include <vector>
#include <iostream>
template <typename T,
template <typename E, typename Allocator = std::allocator<E>> class Container
>
void is_cont(typename Container<T>::iterator it)
{
std::cout << "is iterator\n";
}
template <typename T,
template <typename E, typename Allocator = std::allocator<E>> class Container
>
void is_cont(Container<T>& cont)
{
std::cout << "is container\n";
}
int main()
{
std::vector<int> vec{ 2, 4, 6 };
is_cont(vec); // Output: "is container"
//is_cont(vec.begin()); // COMPILER ERROR
}