【发布时间】:2016-07-08 11:46:21
【问题描述】:
我有一个如下所示的数据框,
我需要将那些以 Distance* 开头的列转换为数据类型整数(目前它们是字符串格式),然后进一步过滤。
我可以这样做,分别为每一列但是我的数据框很大并且有很多列
a.Distance0=a.Distance0.astype(int)
a.Distance1=a.Distance1.astype(int)
此外,我需要根据以距离开头的列过滤掉那些行,并得到两列作为输出,所以我作为输入数据框的最终输出是,
Head1 Header Dis
ABC SAP 115590
ABC GRN 426250
KLM DSQ 120001
我尝试使用以下代码到达那里,也就是说,我正在过滤那些以距离 >=100000 开头的行,并且我只想要那些具有三列值的行,如上所述。 这是我尝试过的,但这个解决方案给了我所有的列
a.loc[a[a[a.columns[pd.Series(a.columns).str.startswith('Distance')]] >= 100000].dropna(how='all', axis=0).index]
但它给出了结果,但我得到的所有列都是这样的,
RNA PC NA PC0 Strand0 Distance0 PC1 Strand1 Distance1
RP11 RNF223 (+11559), AGRN (+42625) 0 RNF223 + 115590 AGRN + 42625
RP13 CORT (-19440), APITD1 (+177) 0 CORT - 254880 APITD1 + 177
任何帮助或建议都会非常棒。!!!
【问题讨论】:
-
您可以订购您编写的数据框,以便它们实际上有列吗?这种方式很难阅读。
-
Head1 是重复列,有机会时编辑数据框
标签: python numpy pandas dataframe