但是我想在R中这样做.
我有:
ret_series <- c(1, 2, 3)
x <- "ret_series"
Run Code Online (Sandbox Code Playgroud)
如何(1, 2, 3)
在x
不直接提及的情况下调用某些函数/操作ret_series
?
在R中,我有两个向量:
a <- c(1, 2, 3, 4)
b <- c(NA, 6, 7, 8)
Run Code Online (Sandbox Code Playgroud)
如何找到两个向量的元素均值,删除NA,没有循环?即我想得到的矢量
(1, 4, 5, 6)
Run Code Online (Sandbox Code Playgroud)
我知道这个功能mean()
,我知道这个论点na.rm = 1
.但我不知道如何把事情放在一起.可以肯定的是,实际上我有数千个带有NA的向量出现在不同的地方,因此任何依赖于维度的解决方案都不起作用.谢谢.
我在Perl中做了很多这样的事情:
printf "%8s %8s %8s\n", qw(date price ret);
Run Code Online (Sandbox Code Playgroud)
但是,我能用Python得到的最好的是
print '%8s %8s %8s' % (tuple("date price ret".split()))
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有一种更优雅的方式呢?如果你告诉我那就好了,我就没事了.
我试图看看是否有一个函数来直接获得负数的真正立方根.例如,在Java中,有Math.cbrt()
功能.我正在寻找R中的等价物.
否则,我目前的黑客是:
x <- -8
sign(x) * abs(x)^(1/3)
Run Code Online (Sandbox Code Playgroud)
每次打字都非常不优雅和麻烦.谢谢!
我有一个函数,它接受一个变量,如果它是以下三种类型中的任何一种,它将起作用
1. pandas Series
2. numpy array (ndarray)
3. python list
Run Code Online (Sandbox Code Playgroud)
任何其他类型都应该被拒绝.检查这个的最有效方法是什么?
我的问题与此问题相反.特别是,我有几十个用Perl编写的现有模块,一些是面向对象的,另一些只是导出一组函数.既然我必须在python中编写某些脚本但仍想调用那些Perl模块,我想知道
1)如果可以实现,并且
2)如果是这样,最好的方法是什么
理想情况下,Perl模块对Python来说可能是"黑盒子",可以这么说.就像是:
from perl_module import *
return_value = perl_func(arg1, arg2, ...)
Run Code Online (Sandbox Code Playgroud)
和
object = perl_module.new()
object.method1(arg1, arg2, ...)
Run Code Online (Sandbox Code Playgroud)
但我肯定会实现这个,如果可能的话,需要在后台导入/运行其他东西.任何Inline::Python
与之相对应的东西也会很好(但并不理想).谢谢!
我有一个Dataframe:
df =
A B C D
DATA_DATE
20170103 5.0 3.0 NaN NaN
20170104 NaN NaN NaN 1.0
20170105 1.0 NaN 2.0 3.0
Run Code Online (Sandbox Code Playgroud)
我有一个系列
s =
DATA_DATE
20170103 4.0
20170104 0.0
20170105 2.2
Run Code Online (Sandbox Code Playgroud)
我想运行一个逐元素的max()
函数并s
沿着列的对齐df
.换句话说,我想得到
result =
A B C D
DATA_DATE
20170103 5.0 4.0 NaN NaN
20170104 NaN NaN NaN 1.0
20170105 2.2 NaN 2.2 3.0
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?我检查了单列比较和系列到系列的比较,但没有找到一种有效的方法来对一系列运行数据帧.
奖励:不知道答案是不言而喻的上面,但如何做到这一点,如果我要对齐s
沿行的df
(假设尺寸匹配)?
这个问题是关于在Python中实现完整的Perl自动修改.我知道之前提出过类似的问题,到目前为止,最好的答案是" 在Python中实现嵌套字典的最佳方法是什么? ".但是,我希望这样做:
a['x']['y'].append('z')
Run Code Online (Sandbox Code Playgroud)
没有a['x']['y'] = []
首先声明,或者更确切地说,没有声明a['x'] = {}
.(在Perl中你可以注意到push @{$a->{x}{y}}, 'z';
.)
我知道dict
和list
类sorta不混合,所以这很难,但我有兴趣看看是否有人有一个巧妙的解决方案,可能涉及从中创建一个继承的类,dict
但append
在其上定义了一个新的方法?
我也知道这可能会让一些Python纯粹主义者想要我坚持使用Perl.但是,即使只是为了挑战,我也希望看到一些东西.
我有数千个系列(DataFrame 的行)需要应用 qcut。定期会有一个系列(行)的值少于所需分位数(例如,1 个值与 2 个分位数):
>>> s = pd.Series([5, np.nan, np.nan])
Run Code Online (Sandbox Code Playgroud)
当我应用.quantile()
它时,它可以毫无问题地分成两个分位数(具有相同的边界值)
>>> s.quantile([0.5, 1])
0.5 5.0
1.0 5.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)
但是,当我应用.qcut()
整数值作为分位数时,会引发错误:
>>> pd.qcut(s, 2)
...
ValueError: Bin edges must be unique: array([ 5., 5., 5.]).
You can drop duplicate edges by setting the 'duplicates' kwarg
Run Code Online (Sandbox Code Playgroud)
即使我设置了duplicates
参数,它仍然失败:
>>> pd.qcut(s, 2, duplicates='drop')
....
IndexError: index 0 is out of bounds for axis 0 with size 0
Run Code Online (Sandbox Code Playgroud)
我该如何进行这项工作?(同样,pd.qcut(s, [0, 0.5, 1], duplicates='drop')
也不起作用。)
所需的输出是将分配 …
这可能听起来很基本.但我是Java的新手.到目前为止,我已经投入了很少的初始学习时间,我一直对新对象声明的语法冗余感到困惑:
TypeName a = new TypeName();
Run Code Online (Sandbox Code Playgroud)
特别是,
String s = new String("abc");
Character c = new Character("A");
Run Code Online (Sandbox Code Playgroud)
世界上为什么会有人想要输入关键字TypeName
(例如String
,Character
等...)的两倍?我知道有简短的手:
String s = "abc";
char c = "A";
Run Code Online (Sandbox Code Playgroud)
但这些是例外而不是规则.那么有人可以开导我吗?谢谢.