我有这个data.table有一些特定于组的数据,以及一些一般数据:
group year flow agg
1: 51557094 2010 3.46000 592649.6
2: 51557133 1999 111.60000 522706.2
3: 51557133 2000 29.36000 555279.7
4: 51557133 2003 96.38000 592649.6
5: 51557193 2004 65.22000 550622.4
Run Code Online (Sandbox Code Playgroud)
flow这里是group- year特异性的,agg是year具体的.我想计算第一个差异:对于flow基于group,和第一个差异year,并且agg没有分组,只是第一个差分year.
我更喜欢不包括的方法dplyr.
group year dFlow dAgg
1: 51557094 2010 NA NA
2: 51557133 1999 NA NA
3: 51557133 2000 -82.24 32573.5
4: 51557133 2003 NA NA …Run Code Online (Sandbox Code Playgroud) 这几乎与此重复.我想从数据表中删除列,但我想有效地完成它.我有一个我想保留的列名列表.联系问题的所有答案都意味着做类似的事情
data.table.new <- data.table.old[, my.list]
Run Code Online (Sandbox Code Playgroud)
在某些关键点上会给我一个新对象,而旧对象仍在内存中.然而,我data.table.old是巨大的,因此我更喜欢通过引用来做到这一点,如此处所示
set(data.table.old, j = 'a', value = NULL)
Run Code Online (Sandbox Code Playgroud)
但是,由于我有列的白名单,而不是黑名单,我需要遍历所有列名,检查它们是否在my.list,然后应用set().有没有更清洁/其他方式这样做?
我在Windows的Git Gui中打开了我的存储库,然后按了commit。我有
无法获取您的身份:
请告诉我您是谁致命:无法自动检测电子邮件地址(获取'foo @ int123123。(无)')
我在其中匿名了电子邮件地址。
但是,我已经使用git控制台(对于Windows)全局设置了电子邮件地址。为了进行检查,我将自己定向到存储库文件夹并输入
git config --list
Run Code Online (Sandbox Code Playgroud)
和输出是
user.name=myName
user.mail=myMail
Run Code Online (Sandbox Code Playgroud)
再次匿名,myMail严格说来不是foo@int123123。我是什么做的?
有时我通过 ssh 运行我的脚本。这个答案告诉我要设置
import matplotlib
#matplotlib.use('Agg') # Must be before importing matplotlib.pyplot or pylab!
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)
当我undefined SCREEN通过 ssh 运行脚本时出现错误。但是,有了该序言,当我在本地计算机上运行脚本时,我无法以交互方式查看图形。
检查屏幕是否定义的条件是什么?我想做
if SCREEN == None:
matplotlib.use('Agg')
Run Code Online (Sandbox Code Playgroud)
正确的代码如何,我该如何检查?
我有
>>> foo = np.zeros((3,3,3))
>>> foo[1,2,1] = 1
>>> idx = 1,2
Run Code Online (Sandbox Code Playgroud)
我想得到相当于
>>> foo[1,2,:]
array([ 0., 1., 0.])
Run Code Online (Sandbox Code Playgroud)
使用idx(迭代idx).我试过的两种方法都没有解决:
>>> foo[idx, :]
array([[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 1., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]]])
>>> foo[((idx,)+(slice(None),))]
array([[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 1., 0.]],
[[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]]])
Run Code Online (Sandbox Code Playgroud) 我目前正在使用sink将输出保存到某个文本文件:
sink('out.txt', append=TRUE, split=TRUE)
Run Code Online (Sandbox Code Playgroud)
我想在每个输出/消息中添加日期时间.sink似乎不支持这一点.实现这一目标的最简单方法是什么?
也就是说,我的预期输出是
[1] "some message"
Run Code Online (Sandbox Code Playgroud)
但我希望它是
2014-12-02 13:12:12 [1] "some message"
Run Code Online (Sandbox Code Playgroud)
或者沿着这些方向的东西.
我更喜欢一个解决方案,我不需要调整脚本的每一个输出.我宁愿只在开始时在config/include文件中设置它,以保持代码清洁和可管理.
我有一本字典
type_dict = {3: 'foo', 4: 'bar',5: 'foobar', 6: 'foobarbar'}
Run Code Online (Sandbox Code Playgroud)
和一个包含以下列的DataFrame:
>>> df.type
0 3
1 4
2 5
3 6
4 3
5 4
6 5
7 6
8 3
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含相应type_dict值的新列,但以下是我唯一可以提出并且无法正常工作的内容:
>>> type_dict[df.type]
TypeError: 'Series' objects are mutable, thus they cannot be hashed
>>> type_dict[df.type.values]
TypeError: unhashable type: 'numpy.ndarray'
Run Code Online (Sandbox Code Playgroud)
我真的需要apply并遍历每一行,还是有更有效的替代方案?
我想按组贬低整个data.table对象(或只是它的许多列的列表).
到目前为止,这是我的方法:
setkey(myDt, groupid)
for (col in colnames(wagesOfFired)){
myDt[, paste(col, 'demeaned', sep='.') := col - mean(col), with=FALSE]
}
Run Code Online (Sandbox Code Playgroud)
这使
Error in col - mean(col) : non-numeric argument to binary operator
Run Code Online (Sandbox Code Playgroud)
这是一些示例数据.在这个简单的例子中,只有两列,但我通常有很多列,所以我想迭代列表
y groupid x
1: 3.46000 51557094 97
2: 111.60000 51557133 25
3: 29.36000 51557133 23
4: 96.38000 51557133 9
5: 65.22000 51557193 32
6: 66.05891 51557328 10
7: 9.74000 51557328 180
8: 61.59000 51557328 18
9: 9.99000 51557328 18
10: 89.68000 51557420 447
11: 129.24436 51557429 15 …Run Code Online (Sandbox Code Playgroud) 我有 4 个维度的点(让我们称它们为 v,w,y,z),我想将其可视化。
我的计划是让两个正方形 ( v x w, y x z) 彼此相邻,然后将每个点绘制两次。
鉴于两点 ( [1, 1, 1, 3], [2, 2, 2, 2]) 我设想这样的事情:
给定一小组点,我可以使用不同的颜色来显示左侧的哪些点对应于右侧。有了大量的点,那将是徒劳的。但也许热图是最好的可视化方法?
或者是否有一些替代的既定方法可以在 python/matplotlib 中可视化更高维度的数据?
以下是一些示例数据:
>>> resultsArray[:,:4]
array([[ 0. , 0. , 0. , 0. ],
[ 0.00495236, 0.03919034, 0.00495287, 0.03919042],
[ 0.00240293, 0.02667374, 0.00220419, 0.02693434],
[ 0.0011231 , 0.0191784 , 0.00104353, 0.01928256],
[ 0.00547274, 0.04187615, 0.00657255, 0.04043363],
[ 0.00291993, 0.0286196 , 0.00292006, 0.02861962],
[ 0.00128136, 0.01975574, 0.00121107, 0.01984781],
[ 0.00591335, 0.04531384, 0.00873814, …Run Code Online (Sandbox Code Playgroud) 据我所知,==检查价值是否相等,并is检查价值背后的结构的身份(例如===在其他一些语言中).
鉴于此,我不明白以下内容:
np.isnan(30) == False
Out[19]:
True
np.isnan(30) is False
Out[20]:
False
Run Code Online (Sandbox Code Playgroud)
其他身份检查似乎并非如此:
(5 == 4) == False
Out[22]:
True
(5 == 4) is False
Out[23]:
True
Run Code Online (Sandbox Code Playgroud)
看起来好像是作为值np.isnan()返回False,而不是作为标识返回.为什么会这样?
python ×5
r ×4
data.table ×3
matplotlib ×2
numpy ×2
boolean ×1
dataframe ×1
dictionary ×1
git ×1
pandas ×1
python-3.5 ×1
sink ×1
ssh ×1
windows ×1