我正在努力integer为stringPython 生成给定类型的ID 。
我认为内置hash功能是完美的,但有时ID似乎太长。这是一个问题,因为最大长度限制为64位。
到目前为止,我的代码:hash(s) % 10000000000。我可以预期的输入字符串的长度将在12-512个字符之间。
要求是:
如果有人可以提供任何提示/解决方案,我将非常高兴。
我正在阅读一个大型 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)
我怎样才能正确解决我的问题?