2024-10-03 11:20:55 发布
网友
例如,我有一个简单的数据框:
>> print(file) Name 0 ['junior','senior'] 1 freshgrad
当我尝试使用:
>> len(file[0]) 2
但是对于第二个
>> len(file[1]) 9
但是我想让第二个计算为1如何区分这两个?你知道吗
1
.join()
9
list.count
最好的方法是检查有问题项的数据类型。您可以使用:
if isinstance(item, list): ...
以及:
if isinstance(item, str): ...
对于字符串,如果愿意,可以使用1作为长度。请注意,使用isinstance(item, dtype)比使用type(item) == dtype更好,因为它将自动处理子类类型。你知道吗
isinstance(item, dtype)
type(item) == dtype
您可以使用np.size:
np.size
In [301]: file = pd.Series([['junior','senior'], 'freshgrad']) In [302]: file.apply(np.size) Out[302]: 0 2 1 1 dtype: int64 In [327]: np.size(file[0]) Out[327]: 2 In [328]: np.size(file[1]) Out[328]: 1
但在某种程度上,这可能只是拖延你的痛苦。当物体 一个序列(或任何类型的序列)有不同的类型,代码往往需要进行类型检查或try..except以不同的方式处理各种类型。(事实上,这就是np.size正在做的。在引擎盖下np.size正在使用try..except来处理异常情况。)
try..except
当序列中的所有对象都具有相同的类型时,生活通常更简单(因此更好)。因此,最好构建一个系列,其元素都是列表:
In [301]: file = pd.Series([['junior','senior'], ['freshgrad']])
freshgrad是字符串 所以len(文件[1])意味着你要计算这个的长度字符串。它是9。 如果文件[1]是一个包含freshgrad的列表,如['freshgrad'],len(文件[1])将是1。
最好的方法是检查有问题项的数据类型。您可以使用:
以及:
对于字符串,如果愿意,可以使用1作为长度。请注意,使用
isinstance(item, dtype)
比使用type(item) == dtype
更好,因为它将自动处理子类类型。你知道吗您可以使用
np.size
:但在某种程度上,这可能只是拖延你的痛苦。当物体 一个序列(或任何类型的序列)有不同的类型,代码往往需要进行类型检查或
try..except
以不同的方式处理各种类型。(事实上,这就是np.size
正在做的。在引擎盖下np.size
正在使用try..except
来处理异常情况。)当序列中的所有对象都具有相同的类型时,生活通常更简单(因此更好)。因此,最好构建一个系列,其元素都是列表:
freshgrad是字符串
所以len(文件[1])意味着你要计算这个的长度字符串。它是9。
如果文件[1]是一个包含freshgrad的列表,如['freshgrad'],len(文件[1])将是1。
相关问题 更多 >
编程相关推荐