小编Din*_*ius的帖子

合并两个数据帧会在最终数据帧中生成更少的行

我想合并两个数据框,以便将 的行df2转换为df1.

df1 = 

ID   B
1    3
2    4
3    5

df2 = 
ID   Value
1    ABC
1    ACD
2    WWW
Run Code Online (Sandbox Code Playgroud)

结果应该是:

result = 
    ID   B   A_1   A_2
    1    3   ABC   ACD
    2    4   WWW   NaN
    3    5   NaN   NaN
Run Code Online (Sandbox Code Playgroud)

问题是合并后我错过了df1真实数据集中的一些行,而我想保留所有行,df1即使df2.

df2['col'] = 'A_' + df2.groupby(['ID'])['Value'].cumcount().astype(str)
df2 = df2.pivot(index='ID', columns='col', values='Value').reset_index()
result = pd.merge(df1, df2)
Run Code Online (Sandbox Code Playgroud)

方面:

df1 = 1404659 rows
df2 = 1015639 rows
result = 1216773 rows (!!!) …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

如何将数据帧转换为json字符串并对此字符串应用一些转换?

我想将我的数据帧转换为json字符串.如果我只是这样做df.to_json(orient='records'),那么它转换得很好.但是,我想在json字符串中进行几次转换.

这是我的数据帧df:

df = 
GROUP   HOUR    AVG_MINUTES   AVG_GRADE
AAA     7       67            5.5
AAA     8       58            6.5
AAA     9       55            4.5
BBB     7       15            5.1
BBB     8       18            5.4
CCC     9       34            5.5
Run Code Online (Sandbox Code Playgroud)

json字符串应如下所示:

[
{
"GROUP":"AAA",
"AVG_MINUTES":[[7,67],[8,58],[9,55]],
"AVG_GRADE":[[7,5.5],[8,6.5],[9,4.5]]
},
{
"GROUP":"BBB",
"AVG_MINUTES":[[7,15],[8,18],[9,34]],
"AVG_GRADE":[[7,5.1],[8,5.4],[9,5.5]]
}
]
Run Code Online (Sandbox Code Playgroud)

我希望HOURAVG_MINUTES和中得到每对内的值AVG_GRADE.有可能吗?或者我应该手动完成吗?(这将是一个坏消息,因为数据帧非常大)

python json pandas

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

如何创建水平图例?

在 D3.js 中,如何创建一个 2 行的水平图例?

这是创建图例的当前 JavaScript 代码:

var legendGroup = svg.append("g")
    .attr("transform", "translate("+(width-50)+",30)");

  var legend = legendGroup.selectAll(".legend")
    .data(nations.map(d=>d.name))
        .enter()
        .append("g")
        .attr("transform", (d,i)=>"translate(0," + 20*i + ")")

  var legendRects = legend.append("rect")
    .attr("width", 10)
        .attr("height", 10)
        .attr("fill", d=> colorScale(d));

  var legendText = legend.append("text")
    .attr("x", 14)
        .attr("y", 8)
    .text(d=>d);
Run Code Online (Sandbox Code Playgroud)

javascript d3.js

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

如何按列自动过滤行

我有pandas数据帧如下:

df =

COL_1   COL_2   VAL_1
ABC     AAA     ABC
CDE     CDE     RTY
ABC     ABC     RTY
ABC     RTY     DEF
Run Code Online (Sandbox Code Playgroud)

我想caculate含有从开始列的任意唯一值的行数COL:COL_1COL_2(VAL_1不应使用).

预期的结果是:

GROUP   COUNT
ABC     3
CDE     2
RTY     1
AAA     1
Run Code Online (Sandbox Code Playgroud)

一种可能性是手动指定列名称并计算行数,同时手动指定所有可能的值GROUP.但很明显,如果列数和值的GROUP数量很大,这个解决方案就不好了.

怎么自动完成?我认为该方法应该是过滤所有具有tunique值的行,以列开头COL

我尝试过这个,但是在1Gb的数据集上需要很长时间才能得到一些不正确的结果.另外我不知道如何避免指定以下值GROUP:str.contains('ABC').

t_cols = [c for c in df.columns.values if not c.startswith('COL')]
aa = df.drop(t_cols,axis=1)
aa.apply(lambda row: row.astype(str).str.contains('ABC').any(), axis=1).shape
Run Code Online (Sandbox Code Playgroud)

python pandas

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

Fuseki SPARQL INSERT生成"错误400:SPARQL查询:否'query ='参数"

我尝试将一个人插入我的本体,但得到错误:

Error 400: SPARQL Query: No 'query=' parameter

Fuseki - version 2.4.1 (Build date: 2016-11-04T18:59:20+0000)
Run Code Online (Sandbox Code Playgroud)

这是我的SPARQL INSERT查询#1:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX oo:  <http://www.test.com/test-ontology.owl#> 

INSERT { 
  oo:cap_123 rdf:type oo:MyTours .  
  oo:cap_123 oo:active true . 
  oo:cap_123 oo:title 'Text text text' . 
} 
WHERE { 
  FILTER NOT EXISTS { oo:cap_123 rdf:type oo:MyTours . 
  } 
} 
Run Code Online (Sandbox Code Playgroud)

这是我的INSERT查询#2:

INSERT DATA {
  oo:cap_123 rdf:type oo:MyTours .
  oo:cap_123 oo:active true .
  oo:cap_123 oo:title 'Text text text' .
}
Run Code Online (Sandbox Code Playgroud)

如果我使用Protégé插入个体,那么它可以工作并保存结果,如下所示:

<owl:NamedIndividual rdf:about="http://www.test.com/test-ontology.owl#cap_123"> …
Run Code Online (Sandbox Code Playgroud)

rdf owl ontology sparql fuseki

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

如何为我的数据集创建多线图?

我有以下 pandas DataFrame df

df = pd.DataFrame(columns=["Event1", "Event2", "Event3"], 
                                data=[[15,1,22],
                                      [16,1.26,80],
                                      [27,0,15]])

df = df.set_index([["Series1", "Series2", "Series3"]])
Run Code Online (Sandbox Code Playgroud)

我想创建一个多线图,其中 X 轴包含Event1Event2Event3,而 Y 轴应该是相应的数值。应该有3个系列:Series1, Series2, Series3

我如何定义x,yhuesns.pointplot(x=???, y=???, hue=???,data=df)

plt.figure(figsize=(12,8))
ax = sns.pointplot(x=???, y=???, hue=???,data=df)
ax.grid(b=True, which='major', color='#d3d3d3', linewidth=1.0)
ax.grid(b=True, which='minor', color='#d3d3d3', linewidth=0.5)
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib dataframe pandas seaborn

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

将熊猫DataFrame的每一行转换为单独的Json字符串

我使用此代码来将熊猫DataFrame的每一行转换df为Json字符串。问题是它正在打印None,但是会df.head()打印出数据。

import pandas as pd
import json

df = pd.read_csv('mydataset.csv')

for i in df.index:
    print df.loc[i].to_json("row{}.json".format(i))
    if i==10:
        break
Run Code Online (Sandbox Code Playgroud)

如何获取每一行作为Json字符串变量并打印出来?Json字符串的结构是简单的,没有数组,只有字符串,整数和浮点字段。

python json python-2.7 pandas

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

如何从pyspark.rdd.PipelinedRDD筛选出值?

我有一个pyspark.rdd.PipelinedRDD电话myRDD。这是其示例内容:

[((111, u'BB', u'A'), (444, u'BB', u'A')),
 ((222, u'BB', u'A'), (888, u'BB', u'A')),
 ((333, u'BB', u'B'), (999, u'BB', u'A')),...]
Run Code Online (Sandbox Code Playgroud)

我需要删除第三列值不一致的所有条目。预期的结果是这样的:

[((111, u'BB', u'A'), (444, u'BB', u'A')),
 ((222, u'BB', u'A'), (888, u'BB', u'A')),...]
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

python apache-spark rdd pyspark

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

如何根据条件删除列

我想删除以“ TYPE”字样开头且不包含_1

df =

TYPE_1    TYPE_2    TYPE_3    COL1
aaa       asb       bbb       123
Run Code Online (Sandbox Code Playgroud)

结果应为:

df =

    TYPE_1    COL1
    aaa       123
Run Code Online (Sandbox Code Playgroud)

目前,我正在手动删除这些列,但是,如果列数很大,此方法将不是很有效:

df = df.drop(["TYPE_2","TYPE_3"], axis=1)
Run Code Online (Sandbox Code Playgroud)

python pandas

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

对行进行分组并计算均值和计数

这是我的数据框:

df = 
UD   QTY   GRADE   TIME_1   TIME_2
1    20    5       22.5     16.1
1    20    5       26.2     19.5
1    20    5       30.0     14.0
1    20    4       20.0     18.5
2    25    4       23.3     19.9
Run Code Online (Sandbox Code Playgroud)

我需要计算的平均值TIME_1TIME_2各组合按UD,和QTY。然后,我想添加新列GRADE_COUNT,该列将存储每个组的行总数。例如,在上述数据集中,每个组有4行,分别由UD= 1和QTY= 20 定义。

结果应该是这样的:

df = 

UD  QTY  MEAN_TIME_1   MEAN_TIME_2   COUNT
1   20   24.67         17.02         4
2   25   23.3          19.9          1
Run Code Online (Sandbox Code Playgroud)

我写了这段代码,对行进行分组,计算平均值并计算值。

groupby_object = df[['UD', 'QTY', 'GRADE', 'TIME_1', 'TIME_2']].groupby(['TIME_1', 'TIME_2])

df = …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

如何在一行代码中总结除以逗号的值?

我需要在字符串"2,4,5"中总结除以逗号的值.当然,我可以这样做:

String[] str = "2,4,5".split(",")
int total = 0;
for (int i=0; i<str.length; i++)
{
  total += str[i];
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更优雅和更短的解决方案(最好是一行代码).

java

0
推荐指数
1
解决办法
81
查看次数

如何通过索引获取列名?

给定dataframe df,如何通过其索引检索列的名称?例如,可以按如下名称获取列的索引:df.columns.indexOf("col1"),但我只需要相反的事情。

java scala dataframe apache-spark

0
推荐指数
1
解决办法
2409
查看次数

登录表单:user的值始终等于0而不是键入的字符串

我有一个包含两个字段的登录表单:用户名和密码.由于某种原因,值user始终等于0,而值pass正确传递.我可以使用echo看到它:<h1>User:<?php echo $user ?>Pass:<?php echo $pass ?></h1>

我正在修改代码,但无法理解为什么会发生这种情况.为什么user没有正确捕获?

<?php
    @session_start();
    $error = 0;
    if (isset($_POST["user"]) && isset($_POST["pass"])) {

        include_once 'include/User.php';

        $user = $_POST['user'];
        $pass = $_POST['pass'];

        $error = 0;

        $user = User::checkLogin($user, $pass);

        if(!is_object($user) && $user == 0){
            $error = 1;
            if(session_status() === PHP_SESSION_ACTIVE) {
                session_unset();
                session_destroy();
            }
        }

        if($error == 0){
            $_SESSION['loged'] = 1;
            $login = TRUE;
            $_SESSION['userid'] = $user->id;
            $_SESSION['username'] = $user->name." ".$user->surename;
            header("Location: index.php?pagina=1");
        }
        else{
            $error = …
Run Code Online (Sandbox Code Playgroud)

html php

0
推荐指数
1
解决办法
48
查看次数