我想在任意的Dask系列上调用.value_counts(),如果它包含不可访问的类型,我希望将它转换为类型字符串。如果我没有必要的话,我不想把这个系列转换成一个字符串。我也不想在调用.compute()之前调用.value_counts()。我试过了
df = pd.DataFrame({"a":[[1], ["foo"], ["foo", "bar"]]})
df = dd.from_pandas(df, npartitions=1)
srs = df["a"]
try:
val_counts = srs.value_counts()
except TypeError:
srs = srs.astype(str)
val_counts = srs.value_counts()
val_counts.compute()这给出了错误
TypeError:无法理解的类型:“列表”
和
df = pd.DataFrame({"a":[[1], ["foo"], ["foo", "bar"]]})
df = dd.from_pandas(df, npartitions=1)
srs = df["a"]
def func(srs):
try:
val_counts = srs.value_counts()
except TypeError:
srs = srs.astype(str)
val_counts = srs.value_counts()
return val_counts
val_counts = dask.compute(func(srs))给出了同样的错误。
我也试过
df = pd.DataFrame({"a":[[1], ["foo"], ["foo", "bar"]]})
df = dd.from_pandas(df, npartitions=1)
srs = df["a"]
if srs.apply(lambda y: isinstance(y, list), meta=srs).any():
srs = srs.astype(str)
srs.value_counts().compute()这给出了错误
TypeError:尝试将dds.calar转换为布尔值.
发布于 2020-08-08 01:11:26
也许先把列表转换成一些可以理解的东西,比如元组?
s.apply(tuple).value_counts() ? https://stackoverflow.com/questions/63224505
复制相似问题