小编Jes*_*ica的帖子

通过分隔符pandas python拆分列

我有一个小样本数据:

import pandas as pd

df = {'ID': [3009, 129,119,120,121,122,130,3014,266,849,174,844 ],
  'V': ['IGHV7-B*01','IGHV7-B*01','IGHV6-A*01','GHV6-A*01','IGHV6-A*01','IGHV6-A*01','IGHV4-L*03','IGHV4-L*03','IGHV5-A*01','IGHV5-A*04','IGHV6-A*02','IGHV6-A*02'],
  'Prob': [1,1,0.8,0.8056,0.9,0.805 ,1,1,0.997,0.401,1,1]}


df = pd.DataFrame(df)
Run Code Online (Sandbox Code Playgroud)

好像

df    

Out[25]: 
      ID    Prob           V
0    3009  1.0000  IGHV7-B*01
1     129  1.0000  IGHV7-B*01
2     119  0.8000  IGHV6-A*01
3     120  0.8056  IGHV6-A*01
4     121  0.9000  IGHV6-A*01
5     122  0.8050  IGHV6-A*01
6     130  1.0000  IGHV4-L*03
7    3014  1.0000  IGHV4-L*03
8     266  0.9970  IGHV5-A*01
9     849  0.4010  IGHV5-A*04
10    174  1.0000  IGHV6-A*02
11    844  1.0000  IGHV6-A*02
Run Code Online (Sandbox Code Playgroud)

我想将'V'列拆分为' - '分隔符并将其移动到另一个名为'allele'的列

    Out[25]: 
      ID    Prob      V …
Run Code Online (Sandbox Code Playgroud)

python pandas

30
推荐指数
3
解决办法
4万
查看次数

在列pandas python中获取非数字行

我查了一下这篇文章:在pandas中的数据框中查找非数字行? 但它并没有真正回答我的问题.

我的样本数据:

import pandas as pd


d = {
 'unit': ['UD', 'UD', 'UD', 'UD', 'UD','UD'],
 'N-D': [ 'Q1', 'Q2', 'Q3', 'Q4','Q5','Q6'],
 'num' : [ -1.48, 1.7, -6.18, 0.25, 'sum(d)', 0.25]

}
df = pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

  N-D   num   unit
0  Q1  -1.48   UD
1  Q2   1.70   UD
2  Q3  -6.18   UD
3  Q4   0.25   UD
4  Q5   sum(d) UD
5  Q6   0.25   UD
Run Code Online (Sandbox Code Playgroud)

我想只筛选出'num'列中非NON-NUMERIC的行.我希望所有列只用于包含列'num'的非数字值的行.

期望的输出:

  N-D   num   unit
4  Q5   sum(d) UD
Run Code Online (Sandbox Code Playgroud)

我的尝试:

nonnumeric=df[~df.applymap(np.isreal).all(1)] #didn't work, it pulled out …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

将一个数据帧中的列添加到另一个 python pandas

我一直在网上搜索并发现了类似的问题,但仍然找不到我正在寻找的答案。我有2个excel文件:

数据1

ColumnA    columnB    columnC   columnD
  A          B          C          D
  A          B          C          D
  A          B          C          D
Run Code Online (Sandbox Code Playgroud)

数据2

ColumnE    columnF    columnG   
  E          F          G          
  E          F          G          
  E          F          G    
Run Code Online (Sandbox Code Playgroud)

我想将列 F 从 data2 添加到 data1:

ColumnA    columnB    columnC   columnD  columnF 
  A          B          C          D       F
  A          B          C          D       F
  A          B          C          D       F
Run Code Online (Sandbox Code Playgroud)

我试过

data2['columnF'] = data1['columnF']  #doesn't work
Run Code Online (Sandbox Code Playgroud)

也试过

data1['columnF'] = ''   #adding a columnF to data1
merg_left = pd.merge(left=data1,right=data2, how='left',      
left_on='columnF', right_on='columnF')  
#gave me …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

跳过未知行数来读取标题python pandas

我有一个excel数据,我用python pandas读入:

import pandas as pd
data = pd.read_csv('..../file.txt', sep='\t' )
Run Code Online (Sandbox Code Playgroud)

模拟数据看起来像这样:

unwantedjunkline1
unwantedjunkline2
unwantedjunkline3
 ID     ColumnA     ColumnB     ColumnC
 1         A          B            C
 2         A          B            C
 3         A          B            C
...
Run Code Online (Sandbox Code Playgroud)

在这种情况下,数据包含3个垃圾行(我不想读入的行),然后点击标题,有时它包含4个或更多的垃圾行.所以在这种情况下我读了数据:

data = pd.read_csv('..../file.txt', sep='\t', skiprows = 3 )
Run Code Online (Sandbox Code Playgroud)

数据看起来像:

 ID     ColumnA     ColumnB     ColumnC
 1         A          B            C
 2         A          B            C
 3         A          B            C
...
Run Code Online (Sandbox Code Playgroud)

但是每次不需要的行数不同时,是否有办法使用pandas读取表文件而不使用'skiprows =',而是使用一些匹配头的命令,以便它知道从头开始读取?所以我不必单击打开文件来计算每次文件包含多少不需要的行,然后手动更改'skiprows ='选项.

python pandas

9
推荐指数
1
解决办法
2406
查看次数

获取空日期pandas python的行

它看起来像这样:

      Dates  N-D  unit
0  1/1/2016  Q1   UD
1            Q2   UD
2            Q3   UD
3  2/1/2016  Q4   UD
4  5/1/2016  Q5   UD
5            Q6   UD
Run Code Online (Sandbox Code Playgroud)

我想过滤掉空的Dates行并将其保存在dataframe blankDate中:

      Dates  N-D  unit
1            Q2   UD
2            Q3   UD
5            Q6   UD


 blankDate=df1[df1['Dates']== '']  #this didn't work 
 df1['Discharge Date'] = pd.to_datetime(df1['Discharge Date']) #then I converted the column to date format but still doesn't work
Run Code Online (Sandbox Code Playgroud)

如果列是一个字符串这段代码工作,它也适用于我认为的数字

blankDate=df1[df1['stringcolumn']== '']
Run Code Online (Sandbox Code Playgroud)

但我如何与空日期行比较?

python pandas

5
推荐指数
1
解决办法
3352
查看次数

根据条件pandas python随机选择行

我有一个小的测试数据样本:

import pandas as pd

df = {'ID': ['H900','H901','H902','','M1435','M149','M157','','M699','M920','','M789','M617','M991','H903','M730','M191'],
  'Clone': [0,1,2,2,2,2,2,2,3,3,3,4,4,4,5,5,6],
  'Length': [48,42  ,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48]}

df = pd.DataFrame(df)
Run Code Online (Sandbox Code Playgroud)

看起来像:

df
Out[4]: 
      Clone   ID  Length
0       0   H900      48
1       1   H901      42
2       2   H902      48
3       2             48
4       2  M1435      48
5       2   M149      48
6       2   M157      48
7       2             48
8       3   M699      48
9       3   M920      48
10      3             48
11      4   M789      48
12      4   M617      48
13      4   M991      48
14      5   H903      48 …
Run Code Online (Sandbox Code Playgroud)

python random pandas

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

熊猫排名方法密集但跳过一个数字

我有一个示例数据集,我正在尝试根据"HP"列中的值进行排名:

import pandas as pd

d = {
 'unit': ['UD', 'UD', 'UD' ,'UC','UC', 'UC','UA','UA','UA','UB','UB','UB'],
 'N-D': [ 'C1', 'C2', 'C3','Q1', 'Q2', 'Q3','D1','D2','D3','E1','E2','E3'],
 'HP': [24, 24, 24,7,7,7,7,7,7,5,5,5]
}
df = pd.DataFrame(d)

df['rank']=df['HP'].rank(ascending=False, method='dense')

df
Run Code Online (Sandbox Code Playgroud)

看起来像:

    HP N-D unit  rank
0   24  C1   UD   1.0
1   24  C2   UD   1.0
2   24  C3   UD   1.0
3    7  Q1   UC   2.0
4    7  Q2   UC   2.0
5    7  Q3   UC   2.0
6    7  D1   UA   2.0
7    7  D2   UA   2.0
8    7  D3 …
Run Code Online (Sandbox Code Playgroud)

python rank pandas

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

将每隔一行移到新列并分组pandas python

我有一个示例数据集,该数据集比我的实际数据集小得多,它实际上是一个文本文件,我想将其作为熊猫表读取并对其进行处理:

import pandas as pd
d = {
     'one': ['title1', 'R2G', 'title2', 'K5G', 'title2','R14G', 'title2','R2T','title3', 'K10C', 'title4', 'W7C', 'title4', 'R2G', 'title5', 'K8C']
    }
df = pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud)

示例数据集如下所示:

df
Out[20]: 

      one
0   title1
1      R2G
2   title2
3      K5G
4   title2
5     R14G
6   title2
7      R2T
8   title3
9     K10C
10  title4
11     W7C
12  title4
13     R2G
14  title5
15     K8C
Run Code Online (Sandbox Code Playgroud)

我添加了第二列,称为“值”:

df.insert(1,'value','')
df
Out[22]: 
      one      value
0   title1
1      R2G
2   title2
3      K5G
4   title2
5     R14G …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

将字符添加到 Pandas 列中每个值的开头

我有一个示例数据集:

 ID       sequence
H100      ATTCCT
H231      CTGGGA
H2002     CCCCCCA
Run Code Online (Sandbox Code Playgroud)

我只想在每个 ID 前添加一个“>”:

 ID       sequence
>H100      ATTCCT
>H231      CTGGGA
>H2002     CCCCCCA
Run Code Online (Sandbox Code Playgroud)

从这篇文章将字符串附加到熊猫数据帧所述列中每个值的开头(优雅地) 我得到了代码:

df["ID"] = '>' + df["ID"].astype(str)
Run Code Online (Sandbox Code Playgroud)

但是,出现了此警告消息:

A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
Run Code Online (Sandbox Code Playgroud)

所以我试过:

 df.loc[: , "ID"] = '>' 
Run Code Online (Sandbox Code Playgroud)

出现了同样的错误信息

我应该如何纠正它?

谢谢

python pandas

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

在我的 Windows .bat 文件中运行 Python 脚本

我有一个 .bat 文件,在我做的文件中:

  1. cd 到目录
  2. 将文件复制到另一个目录
  3. 跑过to-csv.vb在文件上
  4. 删除了一些文件
  5. cd 到另一个方向
  6. 运行我的 Python 脚本。

我被困在第 6 步。这是我的代码:

cd "Python\test1"
copy  "Python\test1\"*.xls*  "Python\test1\move"

FOR /f "delims=" %%i IN ('DIR *.xls* /b') DO to-csv.vbs "%%i" "%%i.csv" 
del "H2*.csv"
del "H6*.csv"
del "H3*.xlsx"

cd "H:\UCLAHealth\HIIN\Data Process\Python" #my python script1 is in this directory 

python script1.py  #this line didn't work.  
Run Code Online (Sandbox Code Playgroud)

我可以执行步骤 1-5,但卡在步骤 6 上。在 .bat 文件中运行 Python 脚本的正确语法是什么?

python windows cmd batch-file

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

标签 统计

python ×10

pandas ×9

batch-file ×1

cmd ×1

random ×1

rank ×1

windows ×1