gpt4 book ai didi

python - 将包含列表的列拆分为虚拟列

转载 作者:行者123 更新时间:2023-12-01 06:32:45 25 4
gpt4 key购买 nike

我想将技术列拆分为仅包含一种技术的虚拟列,换句话说,获得一列Matlab,另一列Python等。

我从df['Technologies'].str.split("/").to_list()开始,但后来被阻止了。下面是我得到的数据框:

    Job                 Technologies                                       City
0 Data scientist Matlab/Python/Pyspark/Scikit-learn/Tensorflow Paris
1 Data architecte Python/Java/Scala/MongoDB Marseille
2 Lead data scientist SPSS/SQL/Teradata/R/Python/Tensorflow/scikit-learn Nantes
3 Data scientist C/C++/Java/Python Marseille
4 Data scientist Matlab/Python/C++/numpy/Tensorflow/scikit-learn Bordeaux

我希望得到的结果:

    Job                 Matlab Python Pyspark Scikit-learn ... C++ Teradata City
0 Data scientist 0 1 1 1 0 0 Paris
1 Data architecte 0 0 0 0 0 1 Marseille
2 Lead data scientist 1 0 0 1 1 0 Nantes
3 Data scientist 1 0 1 0 0 1 Marseille
4 Data scientist 0 1 0 1 1 1 Bordeaux

最佳答案

这是一种方法,尽管之后您必须进行一些清洁

df = pd.get_dummies(df['Technologies'].str.split('/', Expand=True).apply(lambda x: x.str.lower(), axis=1))

重命名列

df.columns = df.columns.str.split('_').str.get(1)

对重复列求和

df = df.groupby(lambda x: x, axis=1).sum()

 c  c++  java  matlab  mongodb  numpy  pyspark  python  r  scala  scikit-learn  spss  sql  tensorflow  teradata
0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0
1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0
2 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1
3 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0
4 0 1 0 1 0 1 0 1 0 0 1 0 0 1 0

关于python - 将包含列表的列拆分为虚拟列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59815643/

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