小编Ana*_*sia的帖子

NumPy loadtxt数据类型

我正在尝试加载一个如下所示的数据集:

Algeria,73.131000,6406.8166213983,0.1
Angola,51.093000,5519.1831786593,2
Argentina,75.901000,15741.0457726686,0.5
Armenia,74.241000,4748.9285847709,0.1
Run Code Online (Sandbox Code Playgroud)

最后,我只需要第1列和第2列.我不需要国名和最后一栏.基本上,我需要提取两个尺寸为nx1的矩阵.我知道我需要指定数据类型:

data=np.loadtxt('file.txt',delimiter=',',dtype=[('f0',str),('f1',float),('f2',float),('f3',float)])
Run Code Online (Sandbox Code Playgroud)

但是,这会生成一个元组列表,

array([('', 73.131, 6406.8166213983, 0.1),
   ('', 51.093, 5519.1831786593, 2.0),`
Run Code Online (Sandbox Code Playgroud)

代替

array(['',73.131,6406.8166213983,0.1],
      ['',51.093, 5519.1831786593, 2.0],
Run Code Online (Sandbox Code Playgroud)

哪里出错了?

python numpy

5
推荐指数
2
解决办法
3万
查看次数

熊猫:组合不同大小的数据框

我有2个数据框:

df1具有白色产品的ID和数量

product_id, count_white
12345,4
23456,7
34567,1
Run Code Online (Sandbox Code Playgroud)

df2具有所有产品的ID和计数

product_id,total_count
0009878,14
7862345,20
12345,10
456346,40
23456,30
0987352,10
34567,90
Run Code Online (Sandbox Code Playgroud)

df2比df1具有更多的产品。我需要在df2中搜索df1中的产品,并将total_count列添加到df1中:

product_id,count_white,total_count
12345,4,10
23456,7,30
34567,1,90
Run Code Online (Sandbox Code Playgroud)

我可以进行左合并,但最终会得到一个很大的文件。有什么办法可以使用merge将df2的特定行添加到df1?

python pandas

5
推荐指数
2
解决办法
7694
查看次数

使用Seaborn创建条形图

我试图用seaborn绘制条形图.样本数据:

x=[1,1000,1001]
y=[200,300,400]
cat=['first','second','third']
df = pd.DataFrame(dict(x=x, y=y,cat=cat))
Run Code Online (Sandbox Code Playgroud)

我用的时候:

sns.factorplot("x","y", data=df,kind="bar",palette="Blues",size=6,aspect=2,legend_out=False);
Run Code Online (Sandbox Code Playgroud)

产生的数字是

没有传说

当我添加图例时

sns.factorplot("x","y", data=df,hue="cat",kind="bar",palette="Blues",size=6,aspect=2,legend_out=False);
Run Code Online (Sandbox Code Playgroud)

结果图看起来像这样

在此输入图像描述

如您所见,条形图从值移开.我不知道如何获得与第一张图中相同的布局并添加图例.

我不一定与seaborn绑在一起,我喜欢调色板,但任何其他方法都适合我.唯一的要求是该图看起来像第一个并且有图例.

matplotlib seaborn

4
推荐指数
1
解决办法
2万
查看次数

熊猫:总结所有行

我有一个DataFrame看起来像这样:

score num_participants
0     20
1     15
2     5
3     10
4     12
5     15 
Run Code Online (Sandbox Code Playgroud)

我需要找到score大于或等于score当前行的参与者数量:

score  num_participants  num_participants_with_score_greater_or_equal
0      20               77
1      15               57
2      5                42
3      10               37
4      12               27
5      15               15
Run Code Online (Sandbox Code Playgroud)

所以,我试图将当前行和它下面的所有行相加.数据有大约5000行,所以我无法通过索引手动设置它.cumsum我没有做到这一点,我不确定是否有一个简单的方法来做到这一点.我花了很多时间试图解决这个问题,所以任何帮助都会受到赞赏.

python dataframe pandas

3
推荐指数
1
解决办法
447
查看次数

Pyspark:groupby然后计算真值

我的数据结构是JSON格式:

"header"{"studentId":"1234","time":"2016-06-23","homeworkSubmitted":True}
"header"{"studentId":"1234","time":"2016-06-24","homeworkSubmitted":True}
"header"{"studentId":"1234","time":"2016-06-25","homeworkSubmitted":True}
"header"{"studentId":"1236","time":"2016-06-23","homeworkSubmitted":False}
"header"{"studentId":"1236","time":"2016-06-24","homeworkSubmitted":True}
....
Run Code Online (Sandbox Code Playgroud)

我需要绘制一个直方图,显示家庭作业的数量已提交:对所有stidentId为真.我编写的代码使数据结构变得扁平化,因此我的密钥是header.studentId,header.time和header.homeworkSubmitted.

我使用keyBy按studentId分组:

    initialRDD.keyBy(lambda row: row['header.studentId'])
              .map(lambda (k,v): (k,v['header.homeworkSubmitted']))
              .map(mapTF).groupByKey().mapValues(lambda x: Counter(x)).collect()
Run Code Online (Sandbox Code Playgroud)

这给了我这样的结果:

("1234", Counter({0:0, 1:3}),
("1236", Counter(0:1, 1:1))
Run Code Online (Sandbox Code Playgroud)

我只需要计数1,可能映射到列表,以便我可以使用matplotlib绘制直方图.我不知道如何继续并过滤所有内容.

编辑:最后我遍历字典并将计数添加到列表中,然后绘制列表的直方图.我想知道是否有一种更优雅的方式来完成我在代码中概述的整个过程.

apache-spark pyspark

3
推荐指数
1
解决办法
3万
查看次数

Seaborn中使用数据框的水平条形图

我正在与seaborn的酒吧斗争,我不确定我做错了什么.数据非常简单:

name     totalCount
Name1    2000
Name2    40000
Name3    50000

sns.barplot(x='name',y='totalCount',data=df)
Run Code Online (Sandbox Code Playgroud)

生成具有平均值(totalCount)而不是实际计数的条形图.

sns.countplot('name',data=df)
Run Code Online (Sandbox Code Playgroud)

生成一个条形图,y轴上的所有计数值等于1.

如何生成具有以下内容的绘图:

x轴上的totalCount,y轴上的名称?

python seaborn

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×4

pandas ×2

seaborn ×2

apache-spark ×1

dataframe ×1

matplotlib ×1

numpy ×1

pyspark ×1