gpt4 book ai didi

python - 将列值转换为整数列 - Pandas

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:01 24 4
gpt4 key购买 nike

给定一系列未知大小的内部列表:

import pandas as pd
sr = pd.Series([['a', 'b', 'c', 'b'], ['a', 'a', 'd'], ['b']])

[输出]:

0    [a, b, c, b]
1 [a, a, d]
2 [b]

目标是使用内部列表中的值来创建列,并用每行中的项目数填充其值,即

     a    b    c    d
0 1.0 2.0 1.0 NaN
1 2.0 NaN NaN 1.0
2 NaN 1.0 NaN NaN

我尝试通过遍历每一行并将它们转换为 Counter 对象并使用计数器字典列表重新创建数据帧来实现上述目标:

>>> from collections import Counter
>>> pd.DataFrame([dict(Counter(row)) for row in pd.Series([['a', 'b', 'c', 'b'], ['a', 'a', 'd'], ['b']])])

有没有更简单的方法来做到这一点?也许使用 .pivot()

最佳答案

我想如果输入是 list 就像上一个问题:

lol = [['a', 'b', 'c', 'b'], ['a', 'a', 'd'], ['b']]
df = pd.DataFrame(Counter(x) for x in lol)
print (df)
a b c d
0 1.0 2.0 1.0 NaN
1 2.0 NaN NaN 1.0
2 NaN 1.0 NaN NaN

如果输入是系列:

df = pd.DataFrame(sr.values.tolist()).apply(pd.value_counts, 1)
print (df)
a b c d
0 1.0 2.0 1.0 NaN
1 2.0 NaN NaN 1.0
2 NaN 1.0 NaN NaN

关于python - 将列值转换为整数列 - Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46640696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com