如何为dataframe列中的每一行实例化不同的对象

2024-09-21 05:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用同一类的不同对象实例化填充pandas dataframe列。在

我使用datasketch MinhashLSH来比较日志文件(字符串),方法是为每个字符串创建压缩摘要,以降低比较不同字符串的复杂性。这需要为每个字符串创建一个新的MinHashLSH对象。为此,我尝试用不同的实例化对象填充dataframe列。
我尝试添加一个指向对象实例化的列,但这会用相同的对象实例化填充该列,但我需要根据每行中的字符串进行操作的不同列来分析。
我知道我可以做到这是一个循环,但我想让它尽可能有效。我还希望能够在添加新数据时轻松地向dataframe添加新行。在

pdf = pandas.read_pickle("data/string_study.pkl")
pdf['MinHashObject'] = MinHash(num_perm=128)

我以为这会在每一行生成不同的对象,但只指向同一行:

^{pr2}$

下面的for循环有效,但这是最有效的方法吗? based on

ls = []
for i in range(len(pdf)):
    ls.append(MinHash(num_perm=128))
pdf['MinHashObject'] = ls

print(pdf['MinHashObject'])
0        <datasketch.minhash.MinHash object at 0x7f9ec5320c10>
1        <datasketch.minhash.MinHash object at 0x7f9ec60c2550>
2        <datasketch.minhash.MinHash object at 0x7f9ec60c2650>
3        <datasketch.minhash.MinHash object at 0x7f9ec60c2290>
4        <datasketch.minhash.MinHash object at 0x7f9ec5320cd0>
...

Tags: 对象实例方法字符串dataframepandasobjectpdf

热门问题