前几天在Python最强王者交流群【WYM】问了一个Pandas处理的问题,提问截图如下:

数据截图如下:


可能一开始理解起来还是有点困难的,需要多读一两遍才可以体会到那个意思。
这里【郑煜哲·Xiaopang】给了一个思路,如下所示:

代码如下:
import pandas as pd
def my_func(x):
res = pd.Series(0, columns=labels)
if "x" in labels:
res["x"] = 1
elif "y" in labels:
res["y"] = 1
.....
return x.append(res)
df.apply(my_func, axis=0)
思路是没问题的,只不过实现起来还是没那么顺利。后来【猫药师Kelly】给了一个答案,如下所示:

代码如下:
df['tblTags'] = df['tblTags'].str.extract('\[(.*?)\]')
df['tblTags'].str.get_dummies(sep=', ')
顺利地解决了粉丝的问题。

不过他自己的原始数据需要再处理下,不然的话,会报错。

如果DataFrame的某一列中含有k个不同的值,则可以派生出一个k列矩阵或DataFrame(其值全为1和0)。pandas有一个get_dummies()函数可以实现该功能。
他后面还咨询了另外一个问题。

也得到就完美地解答。

大家好,我是皮皮。这篇文章主要盘点了一个Python基础的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。
最后感谢粉丝【WYM】提问,感谢【郑煜哲·Xiaopang】、【猫药师Kelly】给出的思路和代码解析,感谢【dcpeng】等人参与学习交流。