小编ald*_*ado的帖子

Python:剥离除数字之外的一切

我必须从几个字符串中的每一个中提取一个数字(一个测量的时间值).我怎么能优雅地做到这一点?所有数字都是正数,最多有两位小数.(例如:2.3/40.09/101.4 - E表示法中没有数字).我正在寻找的代码应该做类似下面的伪代码:

>>> "It took 2.3 seconds".strip(everything but ".1234567890")
2.3
Run Code Online (Sandbox Code Playgroud)

python string numeric strip

4
推荐指数
2
解决办法
7464
查看次数

动态调整日志格式

我想为 python 程序创建一个记录器,它在程序运行期间更改其格式。这是必要的,因为我希望记录器除了日志消息之外还显示有关当前正在运行的程序部分的信息。我想要的是这样的(程序的不同部分 - 第一部分、第二部分应该被记录):

2016-11-15 21:09:07,042 - MyProgram - INFO - First Part - One log message
2016-11-15 21:09:07,042 - MyProgram - INFO - Second Part - Another log message
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码:

import logging

#Set up logger
logfile = str('example.log')
logger = logging.getLogger('MyProgram')
logger.setLevel(logging.DEBUG)
fh = logging.FileHandler(logfile)
fh.setLevel(logging.INFO)

ch = logging.StreamHandler()
ch.setLevel(logging.INFO)

log_status = 'First Part'
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - {0} - %(message)s'.format(log_status))

fh.setFormatter(formatter)
ch.setFormatter(formatter)


logger.addHandler(fh)
logger.addHandler(ch)

#First part of the program
logger.info("One log message")

#Second …
Run Code Online (Sandbox Code Playgroud)

python logging

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

将一列从分类转换为二进制,保留其余列

我有一个中等大的数据帧,我想要将一个列的类别转换为二进制列,每个类别一个.

同时,我希望将其余列保留在数据框中.

实现这一目标最简单的方法是什么?

这是我想要做的一个例子:

d<-data.frame(ID=c("a","b","c","d"), Gender=c("male", "male", "female","female"), Age =c(23,45,18,11))

 ID Gender Age
1  a   male  23
2  b   male  45
3  c female  18
4  d female  11
Run Code Online (Sandbox Code Playgroud)

之后应该看作d2,这样ID和Age列仍然存在并且不受影响:

d2<-data.frame(ID=c("a","b","c","d"), Gender.male=c(1, 1, 0, 0), Gender.female=c(0,0,1,1), Age =c(23,45,18,11))

  ID Gender.male Gender.female Age
1  a           1             0  23
2  b           1             0  45
3  c           0             1  18
4  d           0             1  11
Run Code Online (Sandbox Code Playgroud)

r transformation binary-data one-hot-encoding

3
推荐指数
2
解决办法
90
查看次数

R将列转换为NA值 - 为什么?

我想在制表符分隔文件中读取一列,表示由"罗马"枚举表示的类(每个文件在第二列中包含i,ii,iii或iv).但是,对于仅包含"i"的文件,此列将转换为NA值.我可以使用如下所示的小测试文件重现此错误:

animal  class   info
dog i   a
cat i   a
rabbit  i   b
Run Code Online (Sandbox Code Playgroud)

当我把它读到R:

> d<-read.delim("test_roman.csv", sep="\t")
> d
  animal class info
1    dog    NA    a
2    cat    NA    a
3 rabbit    NA    b
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?read.delim总是在类似的文件上为我工作.

file-io r tab-delimited na

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

表示R中列表之间的相似性

我有很多列表包含不同数量的名义元素.我想将每个列表与每个其他列表进行比较,并针对每个组合计算两个列表共享的元素数量.我不是统计学家,但我认为结果在矩阵中最容易表示.

list1=["Joe","Hanna","Alice"]
list2=["Martin","Ted","Joe"]
list3=["Hanna","Ted","Joe"]
Run Code Online (Sandbox Code Playgroud)

相似

之后我想以图形方式表示结果,可能使用热图或聚类表示.

任何人都可以给我一些提示如何使用R?还有什么是好的代表?非常感谢!

r cluster-analysis similarity matrix heatmap

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