我有一个数据框架,看起来是这样的:
[Column1] [Column2]
0 16155.22300 1.246982
1 16193.009 BMS1P17,BMS1P18,BMS1P22,DUXAP8
2 16231.289 LINC01297
5 16265.05300 2.156268
6 16287.937 POTEH,POTEH-AS1
7 16288.53800 2.156268
10 17645.92500 44.765792
11 17646.335 HDHD5,HDHD5-AS1
12 17646.44400 44.765792
15 18073.59200 103.154877
16 18073.656 LOC101929372,SLC25A18
17 18073.84300 103.154877我想列出只包含来自column2的字符串的列表。我的解决办法是这样的:
my_list=list(i for i in ndf['LDU'] if isinstance(i, basestring))由于某些原因,它不工作,并返回所有的值。任何建议都是非常感谢的!
发布于 2018-05-18 16:00:46
您可以使用:
df['Column2'].loc[pd.to_numeric(df['Column2'], errors='coerce').isnull()]或者你想把它列在单子上。
list(df['Column2'].loc[pd.to_numeric(df['Column2'], errors='coerce').isnull()])发布于 2018-05-18 15:59:41
你可以用这个:
def checker(txt):
try:
float(txt)
return False
except:
return True
df[df['[Column2]'].apply(checker)]
# [Column1] [Column2]
#1 16193.009 BMS1P17,BMS1P18,BMS1P22,DUXAP8
#2 16231.289 LINC01297
#6 16287.937 POTEH,POTEH-AS1
#11 17646.335 HDHD5,HDHD5-AS1
#16 18073.656 LOC101929372,SLC25A18发布于 2018-05-18 16:06:12
以下是一个快速解决方案:
import pandas as pd
df = pd.DataFrame({"a":[2,3,4], "b":["string",2,'m']})
my_list = []
for index, row in df["b"].iteritems(): #change b to your col name
if type(row) == str:
my_list.append(row)
print(my_list)输出:“string”,“m”
https://stackoverflow.com/questions/50415115
复制相似问题