小编Ssa*_*ank的帖子

在遍历 Pandas 数据帧时删除一行

我有一个数据框 df

Name    dist
aaaa     10
bbbb     11
cccc     41
dddd     77
Run Code Online (Sandbox Code Playgroud)

我想删除距离小于 10 的行到下一行。expexted 输出是

Name    dist
aaaa     10
cccc     41
dddd     77
Run Code Online (Sandbox Code Playgroud)

为此,我使用了以下代码

>>> for idx,row in df.iterrows():
...     if idx < df.shape[0]-1:
...             if ((df.ix[idx+1,'dist_to_TSS']-df.ix[idx+1,'dist_to_TSS'])<10):
...                     df.drop(row)
... 
Run Code Online (Sandbox Code Playgroud)

但我得到错误。你能帮我吗?

python pandas

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

子集pandas dataframe时忽略KeyError

我有一个带有列city1,city2,city3,city4,city5的熊猫数据框df。我有一个列表my_cities = [“ city1”,“ city3”,“ city10”]。我想根据my_cities中的列对df进行子集设置。

my_cities = [“ city1”,“ city3”,“ city10”]

df_my_cities = df [my_cities]

我收到错误KeyError:“ ['city10']不在索引中”

如果来自my_cities的元素不在df中,我如何告诉代码继续执行?

python pandas

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

根据行频率对pandas数据帧进行排序

我有一个pandas数据帧df:

Name Score
AAAA    4
AAAA    7
AAAA   12
AAAA   13
BBBB    1
BBBB    1
CCCC    1
CCCC    2
CCCC   27
Run Code Online (Sandbox Code Playgroud)

我想要一个新的数据帧,只有当每个"名称"出现至少3次时才会有来自df的值.即所需的输出是

Name Score
AAAA    4
AAAA    7
AAAA   12
AAAA   13
CCCC    1
CCCC    2
CCCC   27
Run Code Online (Sandbox Code Playgroud)

我知道df.groupby ['Name']给出了每个名字的频率.有关如何使用此信息获取所需输出的任何建议.谢谢

pandas

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

随机选择标题完整的行

如何从文本文件中随机选择 500 行,但要确保始终包含标题。我的文件看起来像

列 1 列 2

AB

光盘

等等。第一行是标题。我试过 sort -r filename|head -n 500 但这并不能确保总是包含标题。谢谢

bash shell

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

用于查找所有匹配项的python正则表达式

我有一个序列

seq = 'CCGATGACCTCACAGCCGCCTCCTGCCTTGAGGAAAGGAACTGCAATTCC'
Run Code Online (Sandbox Code Playgroud)

我试图得到长度为23bp的序列,以NGG结尾,其中N = A或C或T或G`

我用p = re.compile('([ACGT]{21}GG)'),当我说

for m in p.finditer(seq):
      print m.group()
Run Code Online (Sandbox Code Playgroud)

我只得到CACAGCCGCCTCCTGCCTTGAGG.

但显然CCGCCTCCTGCCTTGAGGAAAGG也是匹配.为什么没有报道?

python regex

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

根据列条目在pandas数据帧中删除行

在pandas数据帧df中

name       value

aaaaa        1

aaaa_cntrl   2

bbbb_cntrl   3

ccccc        10
Run Code Online (Sandbox Code Playgroud)

我想删除名称列中包含"_cntrl"的行.你能建议怎么做吗?我查看了df.drop,但无法弄清楚如何根据基于字符串的匹配放弃.谢谢

pandas

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

在熊猫中迭代生成列名

我有一个11列的Pandas DataFrame, df

Name aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk
Run Code Online (Sandbox Code Playgroud)

我想重命名列,以便新的标题是

Name type_1 type_2 type_3 type_4 type_5 expt_1 expt_2 expt_3 expt_4 expt_5
Run Code Online (Sandbox Code Playgroud)

我可以使用,df.rename但必须手动输入新名称。

您能告诉我如何将名称迭代更改为type_*expt_*吗?哪里

* = half the number of columns excluding the first one (Name)
Run Code Online (Sandbox Code Playgroud)

我问这个问题是因为我想将这个命名系统推广到一个有1000列的大表中。

python pandas

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

通过非零填充数字串的数字解释对元组列表进行排序

我有一个python列表

l = [('insert_0', 'gtttaattgag'), ('insert_1', 'tttaattgagt'), ('insert_10', 'gttgtcatatg'), ('insert_11', 'ttgtcatatgt'), ('insert_12', 'tgtcatatgtt'), ('insert_2', 'ttaattgagtt'), ('insert_3', 'taattgagttg'), ('insert_4', 'aattgagttgt'), ('insert_5', 'attgagttgtc'), ('insert_6', 'ttgagttgtca'), ('insert_7', 'tgagttgtcat'), ('insert_8', 'gagttgtcata'), ('insert_9', 'agttgtcatat')]
Run Code Online (Sandbox Code Playgroud)

我希望它排序,看起来像

l_needed = [('insert_0', 'gtttaattgag'), ('insert_1', 'tttaattgagt'),('insert_2', 'ttaattgagtt'),('insert_3', 'taattgagttg'), ('insert_4', 'aattgagttgt'), ('insert_5', 'attgagttgtc'), ('insert_6', 'ttgagttgtca'), ('insert_7', 'tgagttgtcat'), ('insert_8', 'gagttgtcata'), ('insert_9', 'agttgtcatat'),('insert_10', 'gttgtcatatg'), ('insert_11', 'ttgtcatatgt'), ('insert_12', 'tgtcatatgtt'),..]
Run Code Online (Sandbox Code Playgroud)

ie l按下标的升序排序"insert".我试过 l.sort()不生产l_needed.你能建议编辑吗?

python sorting

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

标签 统计

pandas ×5

python ×5

bash ×1

regex ×1

shell ×1

sorting ×1