找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 405|回复: 5

[求助] pandas问题

1

主题

4

帖子

4

积分

贫民

积分
4
hr987987 发表于 2017-5-1 23:12:37 | 显示全部楼层 |阅读模式
source_data = pd.read_csv('data/ratings.csv')
data = source_data.pivot(index = 'userId', columns = 'movieId', values = 'rating')

foo=DataFrame(np.empty((len(data.index),len(data.index)),dtype=int),index=data.index,columns=data.index)
for i in foo.index:
    for j in foo.columns:
        foo.ix[i,j] = data.ix[i][data.ix[j].notnull()].dropna().count()
请问for循环是什么意思
回复

使用道具 举报

30

主题

115

帖子

115

积分

侠客

积分
115
chenmengdan 发表于 2017-5-2 10:28:22 | 显示全部楼层
这程序完整吗,
我感觉是np.empty((len(data.index),len(data.column))....columns=data.columns

还有你的文件是啥样的也不知道
回复 支持 反对

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
hr987987  楼主| 发表于 2017-5-2 21:49:10 | 显示全部楼层
chenmengdan 发表于 2017-5-2 10:28
这程序完整吗,
我感觉是np.empty((len(data.index),len(data.column))....columns=data.columns

程序就是这样的啊

文件是:
userId,movieId,rating,timestamp
1,31,2.5,1260759144
1,1029,3.0,1260759179
1,1061,3.0,1260759182
1,1129,2.0,1260759185
1,1172,4.0,1260759205
1,1263,2.0,1260759151
1,1287,2.0,1260759187
1,1293,2.0,1260759148
1,1339,3.5,1260759125
1,1343,2.0,1260759131
1,1371,2.5,1260759135
1,1405,1.0,1260759203
1,1953,4.0,1260759191
1,2105,4.0,1260759139
1,2150,3.0,1260759194
1,2193,2.0,1260759198
1,2294,2.0,1260759108
1,2455,2.5,1260759113
1,2968,1.0,1260759200
1,3671,3.0,1260759117
2,10,4.0,835355493
2,17,5.0,835355681
2,39,5.0,835355604
回复 支持 反对

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
hr987987  楼主| 发表于 2017-5-2 21:52:46 | 显示全部楼层
hr987987 发表于 2017-5-2 21:49
程序就是这样的啊

文件是:

读取文件经过处理后的data:
movieId  1       2       3       4       5       6       7       8       \
userId                                                                    
1           NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN   
2           NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN   
3           NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN   
4           NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN   
5           NaN     NaN     4.0     NaN     NaN     NaN     NaN     NaN   
6           NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN   
7           3.0     NaN     NaN     NaN     NaN     NaN     NaN     NaN   
8           NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN   
9           4.0     NaN     NaN     NaN     NaN     NaN     NaN     NaN   
10          NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN   
11          NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN   
12          NaN     NaN     NaN     NaN     NaN     NaN     NaN     NaN   
13          5.0     NaN     NaN     NaN     NaN     NaN     NaN     NaN   

for循环前的foo:
userId  1    2    3    4    5    6    7    8    9    10  ...   662  663  664  \
userId                                                   ...                  
1         0    0    0    0    0    0    0    0    0    0 ...     0    0    0   
2         0    0    0    0    0    0    0    0    0    0 ...     0    0    0   
3         0    0    0    0    0    0    0    0    0    0 ...     0    0    0   
4         0    0    0    0    0    0    0    0    0    0 ...     0    0    0   
5         0    0    0    0    0    0    0    0    0    0 ...     0    0    0   
6         0    0    0    0    0    0    0    0    0    0 ...     0    0    0   
7         0    0    0    0    0    0    0    0    0    0 ...     0    0    0
回复 支持 反对

使用道具 举报

30

主题

115

帖子

115

积分

侠客

积分
115
chenmengdan 发表于 2017-5-3 10:27:56 | 显示全部楼层
foo那一行,foo=pd.DataFrame

以你给的样本,及运行结果来看,好像是统计参与打分的用户人数

foo:
userId   1  2
userId      
1       20  0
2        0  3


foo.ix[i,j] = data.ix[i][data.ix[j].notnull()].dropna().count(),这一条语句我分开来也看不太懂
回复 支持 反对

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
hr987987  楼主| 发表于 2017-5-3 18:45:59 | 显示全部楼层
chenmengdan 发表于 2017-5-3 10:27
foo那一行,foo=pd.DataFrame

以你给的样本,及运行结果来看,好像是统计参与打分的用户人数

是的,就是不知道这句话为什么可以统计参与打分的人数
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表