小编Ada*_*ner的帖子

Python Reindex生产Nan

这是我正在使用的代码:

import pandas as pd

test3 = pd.Series([1,2,3], index = ['a','b','c'])
test3 = test3.reindex(index = ['f','g','z'])
Run Code Online (Sandbox Code Playgroud)

所以最初每件事都很好,test3的索引为'a''b''c',值为1,2,3.但是当我重新测试test3时,我得到的是我的值1 2 3丢失了.这是为什么?期望的输出是:

f 1
g 2
z 3
Run Code Online (Sandbox Code Playgroud)

python series pandas

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

MatLab与Python欧拉方程

所以我正在尝试学习python,我认为这样做的一个好方法是采用我之前在MatLab中完成的问题集并将它们转换为Python.这是我正在使用的MatLab代码

% C14 halflife is 5726 years
% The time constant tau is t(1/2)/ln2 = 8260 y

N0=10000; %initialize N0
tau=8260; %Carbon 14 

tmax=40000; %max time value, will be on the x-axis

% Generate data using exact values
t1=linspace(0,tmax,100);
N1=N0*exp(-t1/tau);%Here we introduce the equation for nuclear decay
figure
plot1 = plot(t1,N1);

% Generate data using Euler

Step=1000;
N=N0;
NumRes=N;
tx=0:Step:tmax;
% This is the taylor series generation of data. 
for t=Step:Step:tmax

    N=N-Step*N/tau;
    NumRes=[NumRes,N];

end

% Plot the approximation …
Run Code Online (Sandbox Code Playgroud)

python matlab plot for-loop

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

Cbind/Rbind与Ifelse条件

这是我正在使用的代码:

x <- c("Yes","No","No","Yes","Maybe")
y <- t(1:10)
z <- t(11:20)

rbind.data.frame(ifelse(x == "Yes",y,z))
Run Code Online (Sandbox Code Playgroud)

这产生了

    X1L X12L X13L X4L X15L
1   1   12   13   4   15
Run Code Online (Sandbox Code Playgroud)

期望的结果是:

x
1   Yes   1    2    3    4    5    6    7    8    9    10
2    No   11   12   13   14   15   16   17   18   19    20
3    No   11   12   13   14   15   16   17   18   19    20
4   Yes   1    2    3    4    5    6    7    8    9    10
5 Maybe   11   12   13 …
Run Code Online (Sandbox Code Playgroud)

if-statement r which cbind

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

有条件的跑步计数熊猫

我试图根据两个条件在熊猫中创建一个条件运行总和。

import pandas as pd
ID = [1,1,1,2,2,3,4]
after = ['A','B','B','A','A','B','A']
before = ['A','B','B','A','A','B','A']
df = pd.DataFrame([ID, before,after]).T
df.columns = ['ID','before','after']
Run Code Online (Sandbox Code Playgroud)

数据如下:

   ID before after
0  1      A     A
1  1      B     B
2  1      B     B
3  2      A     A
4  2      A     A
5  3      B     B
6  4      A     A
Run Code Online (Sandbox Code Playgroud)

然后,我想查看一个ID之前具有B值的时间,我的尝试是:

df['time_on_b'] = (df.groupby('before')['ID'].cumcount()+1).where(df['before']=='B',0)
Run Code Online (Sandbox Code Playgroud)

这给了我:

    ID before after  time_on_b
0  1      A     A          0
1  1      B     B          1
2  1      B     B          2
3  2      A …
Run Code Online (Sandbox Code Playgroud)

python group-by pandas

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

向Matrix添加值行

我对R比较新,所以我觉得我的问题比较简单.如果你有一个矩阵,m.

     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
Run Code Online (Sandbox Code Playgroud)

我想将行t的值添加到矩阵m.

      [,1] [,2] [,3]
[1,]    2    3    4
Run Code Online (Sandbox Code Playgroud)

产生新的矩阵p ...

3 5 7
6 8 10 
9 11 13
Run Code Online (Sandbox Code Playgroud)

我希望有一种通用的方法可以做到这一点,而不是像m [1,] + 2那样做.谢谢你的帮助和时间.

r matrix

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

使用匹配功能保留重复项

我目前使用的代码是...

x <- c("1/1/1990",  "2/1/1990",  "3/1/1990",
       "4/1/1990",  "5/1/1990",  "6/1/1990",
       "7/1/1990",  "8/1/1990",  "9/1/1990",  "10/1/1990", 
       "11/1/1990") 
y <- c("1/1/1990","9/1/1990","1/1/1990","2/1/1990")
test <- match(x,y)
position <- which(test > 0)
position
Run Code Online (Sandbox Code Playgroud)

当前位置的输出为:

[1] 1 2 9
Run Code Online (Sandbox Code Playgroud)

我想保留重复的行并让输出......

[1] 1 1 2 9

这可能吗?

感谢您的帮助。

r duplicates

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

拉出未绘制的数字

这是我正在使用的代码.我想随机抽取数字,我想继续这样做,直到所有数字1:18都被绘制出来.我不想两次绘制相同的数字.

RandomArray <- sample(1:18, 6, replace=F)

RandomArray2 <- sample(1:18,6, replace = F)
RandomArray3 <- sample(1:18,6, replace = F)
RandomArray2 <- ifelse(RandomArray==RandomArray2,
  sample(1:18,6,replace=F),RandomArray2)

RandomArray3 <- ifelse(RandomArray2==RandomArray3,
            sample(1:18,6,replace=F),RandomArray3)
Run Code Online (Sandbox Code Playgroud)

理想的输出是

RandomArray [1 2 3 4 5 6] RandomArray2 [7 8 9 10 11 12] RandomArray3 [13 14 15 16 17 18] 
Run Code Online (Sandbox Code Playgroud)

我也尝试过

x <- 1:18 
test2 <- sapply(x, function(x) 
  if (x == RandomArray) x-RandomArray else x)
Run Code Online (Sandbox Code Playgroud)

但这也不对,因为我只是想摆脱我已经绘制过的数字.

谢谢您的帮助.

random r generator

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

Python二分号猜测游戏

我试图写一个简单的二分法方法问题,只要我没有一个我已经注释掉的某个条件语句,它就能完美地运行.这是什么原因?这不是一个家庭作业问题.

low = 0 
high = 100 
ans = (low+high)/2 
print "Please think of a number between 0 and 100!"
print "Is your secret number " + str(ans) + "?"
response = raw_input("Enter 'h' to indicate the guess is too high. Enter 'l' to indicate the guess is too low. Enter 'c' to indicate I guessed correctly. ") 
response = str(response)
while response != "c": 
   if response == "h":
        high = ans 
        ans = (low + high)/2 
        print "Is your …
Run Code Online (Sandbox Code Playgroud)

python bisection

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

重复矩阵中的值(R)

这是我正在使用的代码:

A <- matrix(1:9, nrow = 3)
A
cbind(A,A,A)
Run Code Online (Sandbox Code Playgroud)

这给出了一个输出:

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,]    1    4    7    1    4    7    1    4    7
[2,]    2    5    8    2    5    8    2    5    8
[3,]    3    6    9    3    6    9    3    6    9
Run Code Online (Sandbox Code Playgroud)

所需的输出是......

  [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,]    1    1    1    4    4    4    7    7    7
[2,]    2    2    2    5    5    5    8    8    8
[3,] …
Run Code Online (Sandbox Code Playgroud)

r sapply rep cbind

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

用sapply函数清理代码

如何使用sapply函数清理此代码?

Orig <- .45 
Adjusted <- matrix(1:130, nrow =13)

Original <- rbind(Orig,
                  Orig1 <- pmin(Orig*(1+Adjusted[1,]),100),
                  Orig2 <- pmin(Orig1*(1+Adjusted[2,]),100),
                  Orig3 <- pmin(Orig2*(1+Adjusted[3,]),100),
                  Orig4 <- pmin(Orig3*(1+Adjusted[4,]),100),
                  Orig5 <- pmin(Orig4*(1+Adjusted[5,]),100),
                  Orig6 <- pmin(Orig5*(1+Adjusted[6,]),100),
                  Orig7 <- pmin(Orig6*(1+Adjusted[7,]),100),
                  Orig8 <- pmin(Orig7*(1+Adjusted[8,]),100),
                  Orig9 <- pmin(Orig8*(1+Adjusted[9,]),100),
                  Orig10 <- pmin(Orig9*(1+Adjusted[10,]),100),
                  Orig11 <- pmin(Orig10*(1+Adjusted[11,]),100),
                  Orig12 <- pmin(Orig11*(1+Adjusted[12,]),100)
)
Run Code Online (Sandbox Code Playgroud)

r matrix rbind

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