Python:从dataframe中删除字典中不存在值的行

2024-09-29 23:22:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件(或数据帧),如下所示:

Text    Location    State
A   Florida, USA    Florida
B   NY              New York
C       
D   abc 

以及一个键值对为:

^{pr2}$

如何删除第3行和第4行,即文本为C&D的行,以便我的数据帧只包含那些我在字典中有值的行。所有状态为空或具有不在字典值中的值的行都应删除。最终输出应如下所示:

Text    Location    State
    A   Florida, USA    Florida
    B   NY              New York

请帮忙。在


Tags: 文件csv数据textnew字典location键值
1条回答
网友
1楼 · 发布于 2024-09-29 23:22:15

使用^{}+^{},最后按^{}删除行:

stat_map = {
        'FL': 'Florida',
        'NY': 'New York',
        'AR': 'Arkansas',
}

#get list from all values from keys and values of dict
L = list(stat_map.keys()) + list(stat_map.values())
print (L)
['NY', 'FL', 'AR', 'New York', 'Florida', 'Arkansas']


df['State1'] = df['Location'].str.extract('(' + '|'.join(L) + ')', expand=False)
                             .replace(stat_map)
df = df.dropna(subset=['State1'])
print (df)
  Text      Location     State    State1
0    A  Florida, USA   Florida   Florida
1    B            NY  New York  New York

相关问题 更多 >

    热门问题