python - 检查 DataFrame 列是否仅包含字符串
问题描述
假设我有一个 DataFrame df
:
A B
0 a 1
1 a1 3
2 b_ 5
3 c( 7
我只想从作为A
字符串的列中获取这些元素(例如作为列表),所以在这种情况下只会a
返回。我想过,.str.contains()
但我宁愿使用基于类型的东西。
解决方案
使用正则表达式 with^
作为字符串的开头,然后使用字母a-z
和A-Z
last$
作为字符串的结尾Series.str.contains
:
df = df[df['A'].str.contains('^[a-zA-Z]$')]
print (df)
A B
0 a 1
如果想要A
过滤列列出:
L = df.loc[df['A'].str.contains('^[a-zA-Z]$'), 'A'].tolist()
print (L)
['a']
编辑:
print (df)
A B
0 a d 1
1 a gh 3
2 b_ 5
3 c( 7
#https://stackoverflow.com/a/18752121/2901002
df = df[~df['A'].str.contains('[^A-Za-z\s]')]
print (df)
A B
0 a d 1
1 a gh 3
推荐阅读
- css - 如何过渡已经有动画的 React 元素
- c - 如果在 main 中添加了元素,则在 C 中查找链表的元素有效,但如果没有,则无效?
- c# - 在 C# 中指定参数属性的默认值
- ios - 将数据从 tableViewCell 传递到另一个 VC
- javascript - 如何从作为道具传递的数组中反应性地删除一个对象,以便它反映在 DOM 中?
- regex - 正则表达式查找指定的值
- c - 为什么多次调用 calloc 会使我的应用程序崩溃?
- python - Termcolor“彩色”输出奇怪的字符
- javascript - Razor 页面 POST 处理程序未从 jQuery AJAX 接收 JSON 数据
- android - Firebase 数据库的读写调用在 Android 上不起作用