因此,我的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).如果这是一种防止这种情况的方法,那就太酷了.如果没有,它不是一个大问题,因为它是一个快速修复删除.
谢谢!
我的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_packages
在R中,当我由于某种原因转到"包 - >加载"时,rjson不存在.它从来没有,即使有效.
我已导航到......
C:\用户\汤姆\文件\ r\WIN库\ 2.15
我可以确认rjson的文件夹在那里.
不知道该怎么做.
我有一个数据集.在许多不同的文件操作之前,许多单元格都是"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中的空白单元格?
我正在将一些东西从 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 中本地执行此操作?
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) 我有一个矩阵.我将在下面举一个简单的例子.
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)
似乎没有给我想要的结果,返回一个空矩阵.
有任何想法吗?
我有一个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没有朋友或关注者的情况,但他们自己跟随人. …
我已经按照我的数据集复制了两个教程,链接如下
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 个堆叠条),然后该部分变为红色。
这是否可能或超出范围,如果可能,我在概念上缺少什么?
使用 R,库(ggplot2)
我有一个完美的正方形 ggplot。从左上角到右下角,我有一条线。
所以说 xlim(0,100), ylim(0,100) 和 geom_abline(intercept=100,lope=-1)。
我如何使线条上方的所有内容都说蓝色背景和红色下方?
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?
我有以下代码
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,但这不是解决这个问题的最好方法.