加载中…
正文 字体大小:

python pandas dataframe column split to new columns

(2016-11-16 20:13:53)
标签:

pandas

分类: python


import sys
if sys.version_info[0] < 3:
from StringIO import StringIO
else:
from io import StringIO
import pandas as pd


data = StringIO("""year;month;clickSource
2010;01;google, yahoo, google, google, facebook, facebook
2010;02;facebook, yahoo, google, google, facebook, facebook
2010;03;yahoo, yahoo, google, google, facebook, facebook
2010;04;google, yahoo, google, twitter, facebook, facebook
2010;05;facebook, yahoo, google, google, facebook, facebook
2010;06;twitter, yahoo, google, twitter, facebook, google
""")

df = pd.read_csv(data, sep=";")
print(df.shape)
print(df)

df_new = df.set_index(['year', 'month']).clickSource.str.split(', ').apply(pd.value_counts).fillna(0).astype(int).reset_index()
print(df_new)

(6, 3)
   year  month                                        clickSource
0  2010      1  google, yahoo, google, google, facebook, facebook
1  2010      2  facebook, yahoo, google, google, facebook, fac...
2  2010      3   yahoo, yahoo, google, google, facebook, facebook
3  2010      4  google, yahoo, google, twitter, facebook, face...
4  2010      5  facebook, yahoo, google, google, facebook, fac...
5  2010      6  twitter, yahoo, google, twitter, facebook, google
   year  month  facebook  google  twitter  yahoo
0  2010      1         2       3        0      1
1  2010      2         3       2        0      1
2  2010      3         2       2        0      2
3  2010      4         2       2        1      1
4  2010      5         3       2        0      1
5  2010      6         1       2        2      1

Process finished with exit code 0

0

阅读 评论 收藏 转载 喜欢 打印举报
已投稿到:
后一篇:python字典排序
  • 评论加载中,请稍候...
发评论

       

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    后一篇 >python字典排序
      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有