所以这个链接(Deleting DataFrame row in Pandas based on column value)描述了如何根据一个值进行一个非常简单的列删除。。。在
…此行将删除列line_race
包含值0
的行:
df = df[df.line_race != 0]
我的问题更深入一点。在
我想删除数据帧中第一列中的值不是某个值的所有行。特别是,如果第一列fish_frame[0]
包含与另一个列表stocks
中的值不匹配的字符串,则删除它。在
我以为这样的东西能起作用,但事实并非如此:
^{pr2}$我的数据帧的第一列,fish_frame[0]
:
0 NEFS X Available stocks
1 11/6/2013
2 Chris King
3 Package $4000 or BO
4 GOM Winter Flounder
5 HAD GBW
6 POLLOCK
7 WINTER FL SNE
8 COD GBW
9 WHITEHAKE
10 HAD GBE
11 WINTER FL GBbb
12 Grey Sole
13 YELLOWTAIL SNE
14 YELLOWTAIL GB
15 REDFISH
16 NaN
17 List A
18 Package $10,000 or BO
19 GOM Winter Flounder
我的列表stocks
:
(
'GB COD EAST',
'GB COD EAST ACE',
'GB COD WEST ACE',
'GBE COD',
'GB COD WEST',
'GBW COD',
'GOM COD',
'GB HADDOCK EAST',
'GBE HADDOCK',
'GBW HADDOCK',
'GBE HADD',
'GB HADDOCK WEST',
'GBYT',
'GB YT',
'GBW HADD',
'GOM HADDOCK',
'GOM HADD',
'GOM HAD',
'GOM HADOCK',
'PLAICE',
'DABS',
'POLLOCK',
'POLL',
'REDFISH',
'REDS',
'RED',
'WHITE HAKE' ,
'WHITEHAKE',
'WHAKE',
'WHAK',
'GB WINTER FLOUNDER',
'GB WINTER FL',
'GB BB',
'GB WINTER',
'GB BLACK BACKS',
'GB BLACKBACKS',
'GOM WINTER FLOUNDER',
'WINTER GOM FLOUNDER',
'GOM BLACKBACKS',
'GOM BB',
'GOM WINTER',
'SNE WINTER FLOUNDER',
'SNE WINTER',
'SNE/MA WINTER FLOUNDER',
'SNE/MA YELLOWTAIL',
'SNE BLACKBACK',
'SNE BLACKBACKS',
'SNE BB',
'WITCH FLOUNDER',
'WITCH FL',
'WITCH',
'WHICH',
'WHITCH',
'GREYSOLE',
'GREY SOLE',
'CC/GOM YELLOWTAIL FLOUNDER',
'GOM YELLOWTAIL',
'GOM YELLOW TAIL',
'GOM YT',
'GB YELLOWTAIL FLOUNDER',
'GB YELLOWTAIL',
'GB YT',
'SNE/MA YELLOWTAIL FLOUNDER',
'SNE YT',
'SNE YELLOWTAIL',
'SNE YELLOW TAIL',
'SCALLOP IFQ'
)
如果您能帮忙解决这个问题,我们将不胜感激,谢谢。在
您想从
stocks
对象构造一个regex模式。然后使用pd.Series.str.contains
测试是否存在匹配项。最后,使用布尔索引删除那些不匹配的。在相关问题 更多 >
编程相关推荐