小编Jib*_*ril的帖子

保留列顺序 - Python Pandas和列Concat

因此,我的google-fu似乎并没有让我正义,看起来应该是一个微不足道的程序.

在Pandas for Python中我有2个数据集,我想合并它们.使用.concat可以正常工作.问题是,.concat重新排序我的列.从数据检索的角度来看,这是微不足道的.从"我只是想打开文件并快速查看最重要的列"的角度来看,这很烦人.

File1.csv
Name    Username    Alias1 
Tom     Tomfoolery   TJZ
Meryl   MsMeryl      Mer
Timmy   Midsize      Yoda

File2.csv
Name    Username   Alias 1   Alias 2
Bob     Firedbob   Fire      Gingy
Tom     Tomfoolery  TJZ      Awww

Result.csv
    Alias1 Alias2   Name    Username
0   TJZ    NaN      Tom     Tomfoolery
1   Mer    NaN      Meryl   MsMeryl
2   Yoda   NaN      Timmy   Midsize
0   Fire   Gingy    Bob     Firedbob
1   TJZ    Awww     Tom     Tomfoolery
Run Code Online (Sandbox Code Playgroud)

结果很好,但在我正在使用的数据文件中,我有1,000列.最重要的2-3个现在位于中间.有没有办法,在这个玩具示例中,我可以强迫"Username"成为第一列,"Name"成为第二列,显然保留了每个下面的值.

另外作为旁注,当我保存到文件时,它也会在侧面保存该编号(0 1 2 0 1).如果这是一种防止这种情况的方法,那就太酷了.如果没有,它不是一个大问题,因为它是一个快速修复删除.

谢谢!

python concat concatenation pandas

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

"库中的错误(rjson):没有名为rjson的包"

我的rjson包随机不起作用.因为,它有时很好,有时它无法加载.不知道为什么.

我收到这个错误.

     Error in library("rjson") : there is no package called ‘rjson’
Run Code Online (Sandbox Code Playgroud)

为了尝试缓解这个问题,尽管知道它已安装,我在我的脚本中添加了一个安装行.

   install.packages("rjson", repos="http://cran.rstudio.com/")
   library(rjson)
Run Code Online (Sandbox Code Playgroud)

现在我得到......

安装包(S)到'C:/Users/Tom/Documents/R/win-library/2.15'试图URL(如'LIB'是未指定)" http://cran.rstudio.com/bin/windows/contrib /2.15/rjson_0.2.13.zip '内容类型'应用程序/ zip'长度491848字节(480 Kb)已打开URL已下载480 Kb

包'rjson'成功解压并检查MD5总和警告:无法删除先前安装包'rjson'

下载的二进制包位于C:\ Users\Tom\AppData\Local\Temp\RtmpiOfTqK\downloaded_pa​​ckages

在R中,当我由于某种原因转到"包 - >加载"时,rjson不存在.它从来没有,即使有效.

我已导航到......

C:\用户\汤姆\文件\ r\WIN库\ 2.15

我可以确认rjson的文件夹在那里.

不知道该怎么做.

r package rjson

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

理解R - is.na和空白""细胞

我有一个数据集.在许多不同的文件操作之前,许多单元格都是"NA"

在操纵之后,无论出于何种原因,它们都变得纯粹是空洞的.因此,需要明确的是,以前NA在excel中的SAME单元​​现在只显示完全空白.没什么大不了的吧?

那么,当我把数据读入RI时...

 [1] ""                  ""                  "6.4019975396e+17" 
 [4] ""                  ""                  ""                 
 [7] ""                  ""                  "6.40275087015e+17"
[10] "6.4062774821e+17"  ""                  "6.40602341e+17"   
[13] ""                  ""                  "6.40360673735e+17"
[16] "6.40326194081e+17" "6.40326465381e+17" "6.40322363352e+17"
Run Code Online (Sandbox Code Playgroud)

对我来说似乎还不错,除非我跑步

is.na(data_frame $列名)

我搞错了.每一个.我误解了.na是如何工作的?

编辑 - 这有点模糊.当然,我误解了它是如何工作的.你能解释为什么空单元不算作NA单元吗?是否存在可以应用于数据框的快速修复程序,以便为R创建任何"或"为CSV的NA中的空白单元格?

excel r missing-data

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

NumPy 相当于合并

我正在将一些东西从 R 转换到 Python,并且对有效合并感到好奇。我concatenate在 NumPy 中发现了一些东西(使用 NumPy 进行操作,所以我想坚持使用它),但它没有按预期工作。

取两个数据集

d1 = np.array([['1a2', '0'], ['2dd', '0'], ['z83', '1'], ['fz3', '0']])
Run Code Online (Sandbox Code Playgroud)
d1 = np.array([['1a2', '0'], ['2dd', '0'], ['z83', '1'], ['fz3', '0']])
Run Code Online (Sandbox Code Playgroud)

d2 = np.array([['1a2', '33.3', '22.2'], 
               ['43m', '66.6', '66.6'], 
               ['z83', '12.2', '22.1']])
Run Code Online (Sandbox Code Playgroud)
ID      Label
1a2     0
2dd     0
z83     1
fz3     0
Run Code Online (Sandbox Code Playgroud)

我想将这些合并在一起,结果是

d2 = np.array([['1a2', '33.3', '22.2'], 
               ['43m', '66.6', '66.6'], 
               ['z83', '12.2', '22.1']])
Run Code Online (Sandbox Code Playgroud)

因此,它识别出与 ID 列匹配的行,然后将它们连接在一起。这在 R 中使用 相对简单merge,但在 NumPy 中对我来说不太明显。

有没有办法在我缺少的 NumPy 中本地执行此操作?

python merge numpy

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

有效地从 Pandas 数据框中删除所有零

train_subset.iloc[:10, :10]
1  0  7045    17    16.0    0.0    0.0   0.0   0.0  18.0
1  0  8907   137    48.0   42.0   53.0  32.0  35.0  30.0
1  0   917   167   193.0   88.0   48.0   0.0  24.0   0.0
1  0   203  5303  2073.0  153.0  108.0  97.0  73.0  89.0
1  0   198   817   198.0    0.0    0.0  88.0  93.0  70.0
Run Code Online (Sandbox Code Playgroud)

我有一个名为 train 的数据集。我在这里打印了它的一小部分。

有没有一种有效的方法可以从数据集中删除所有零,通过向左移动来更新列?例如,我想要的输出是...

请注意,我希望这仅从第 4 列开始触发。第一、第二和第三列是元数据,不应更改。

train_subset.iloc[:10, :10]
1  0  7045    17    16.0   18.0
1  0  8907   137    48.0   42.0   53.0  32.0  35.0  30.0
1  0   917 …
Run Code Online (Sandbox Code Playgroud)

python pandas data-cleaning

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

R - 在矩阵中的特定列上使用APPLY

我有一个矩阵.我将在下面举一个简单的例子.

    ID_Num    Name    text
1   123       Ari\n     "I\nlove"
2   456       Zona\r    "Arizona\r\Iced\n"
3   789       Tea     "tea!!\n\r"
Run Code Online (Sandbox Code Playgroud)

我想从文本列中删除\n和\ r \n无论出于何种原因.

申请怎么做?

话说....

matrix = apply( matrix, 1, function(x) gsub("[\r\n\]", "", x["text"]) 
Run Code Online (Sandbox Code Playgroud)

似乎没有给我想要的结果,返回一个空矩阵.

有任何想法吗?

regex r matrix apply

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

从非常大的边缘列表快速计算单向,双向链路的数量

我有一个4 GB的文件,其中有大约20亿个有向边,格式为User1 FOLLOWS User 2,如下所示.

User1       User2
7           37
5           24
7           8383932
24          1
3           8538
37          7

DF = structure(list(User1 = c(7L, 5L, 7L, 24L, 3L, 37L), User2 = c(37L, 
24L, 8383932L, 1L, 8538L, 7L)), .Names = c("User1", "User2"), row.names = c(NA, 
-6L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

等等.我希望能够有效地获得以下结果

User        NumberFollowers        NumberFriends
1           1                      0
7           1                      1
24          1                      0
37          1                      1
8383932     1                      0
8538        1                      0
5           0                      0
3           0                      0
Run Code Online (Sandbox Code Playgroud)

等等,其中NumberFollowers是带有链接的"User1"的数量,NumberFriends是他们也相互关注的追随者的数量.

我目前正在尝试使用

aggregate()
Run Code Online (Sandbox Code Playgroud)

然而,它似乎忽略了用户5和用户3没有朋友或关注者的情况,但他们自己跟随人. …

r graph-theory

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

Python - Altair - 带选择的堆叠条形图

我已经按照我的数据集复制了两个教程,链接如下

Stacked Bar Chart : https://altair-viz.github.io/gallery/stacked_bar_chart.html 
Run Code Online (Sandbox Code Playgroud)

Selectable Data : https://altair-viz.github.io/gallery/interactive_cross_highlight.html 
Run Code Online (Sandbox Code Playgroud)

不过,我很难理解 Altair 是否能够将这两者结合起来。

是否可以有一个堆叠条形图,其中图表的每个“子部分”都是可选的。所以,如果我有这样的数据

Category1, Category2
Run Code Online (Sandbox Code Playgroud)

条形图,每个条形图可以有小节

Sub1, Sub2
Run Code Online (Sandbox Code Playgroud)

我有一个堆积条形图,其中与 Sub1 相关的 Categroy1/Category2 部分为蓝色,与 Sub2 相关的部分为橙色,我可以选择 4 个部分中的任何一个(Cat1+Sub1、Cat1+Sub2、Cat2) +Sub1、Cat2+Sub2,表示为 2 个堆叠条),然后该部分变为红色。

这是否可能或超出范围,如果可能,我在概念上缺少什么?

python data-visualization stacked-area-chart altair

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

R - ggplot 上的背景颜色沿对角线分开?

使用 R,库(ggplot2)

我有一个完美的正方形 ggplot。从左上角到右下角,我有一条线。

所以说 xlim(0,100), ylim(0,100) 和 geom_abline(intercept=100,lope=-1)。

我如何使线条上方的所有内容都说蓝色背景和红色下方?

r background-color ggplot2

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

R - 当Col2> Col3时,数据表的Col1中的数字唯一Vals

SampleTable:

ID      Score1      Score2
1       100         88
1       96          94
1       94          95
2       100         100
2       98          94
3       77          88
Run Code Online (Sandbox Code Playgroud)

所以我希望返回值为2,因为有2个唯一的人有一个Score1> Score2的实例.

为了再现性:

df = data.frame( ID=c(1,1,1,2,2,3), Score1=c(100,96,94,100,98,77), Score2=c(88,94,95,100,94,88) )
ID Score1 S
Run Code Online (Sandbox Code Playgroud)

我刚在想

length( unique( which( df$Score1 > df$Score2 ) ) )
Run Code Online (Sandbox Code Playgroud)

然而,返回3,显然是因为它没有考虑寻找df$ID唯一的,只是唯一出现的数量.我如何解释想要独特的唯一数量df$ID

r unique data.table

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

R - 向量的特定部分的平均值

我有以下代码

mean(  myList$scores[ myList$IDs == "1234" ] )
Run Code Online (Sandbox Code Playgroud)

这给了我ID 1234的人的分数的平均值.

假设我有一个ID号列表,这是所有ID号的小样本.

testIDs = c(1234,2345,3456,4567)

我如何更改这个以返回给我4表示,平均值为1234,平均值为2345,平均值为3456,平均值为4567.

我知道我可以遍历testIDs,但这不是解决这个问题的最好方法.

r

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