小编mle*_*108的帖子

从Python中的字符串生成ID

我正在努力integerstringPython 生成给定类型的ID 。

我认为内置hash功能是完美的,但有时ID似乎太长。这是一个问题,因为最大长度限制为64位。

到目前为止,我的代码:hash(s) % 10000000000。我可以预期的输入字符串的长度将在12-512个字符之间。

要求是:

  • 仅整数
  • 从提供的字符串生成
  • 理想情况下,最长为10-12个字符(我将只有500万个项目)
  • 碰撞几率低..?

如果有人可以提供任何提示/解决方案,我将非常高兴。

python hash

4
推荐指数
1
解决办法
4773
查看次数

检查 Series 是否包含列表中的任何元素

我正在阅读一个大型 CSV 文件,其中一列的表示如下。

import pandas as pd

df['col1'] = pd.Series(
    ["37", "AWESOME House", "Yellow Cottage, 107", "14"], dtype='object'
)
Run Code Online (Sandbox Code Playgroud)

我的代码使用“向量化字符串方法”及时返回所需的数据。

简化的代码来说明某些逻辑部分。

import numpy as np

sth = np.where(
    <check condition>,
    df['col1'].str.lower(),
    df['some_other_column'].whatever()
)
Run Code Online (Sandbox Code Playgroud)

接下来,我想检查 my 中的每个值是否Series包含以下列表中的任何元素。

check_list = ['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

因此预期结果(对于“检查条件”)将是:

False
True
True
False
Run Code Online (Sandbox Code Playgroud)

我试过这个

np.where(
    np.any([x in df['col1'].str.lower() for x in check_list])
...
Run Code Online (Sandbox Code Playgroud)

但收到错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Run Code Online (Sandbox Code Playgroud)

我怎样才能正确解决我的问题?

python numpy pandas

2
推荐指数
1
解决办法
3618
查看次数

标签 统计

python ×2

hash ×1

numpy ×1

pandas ×1