根据python中的字符串匹配列名?

Posted

技术标签:

【中文标题】根据python中的字符串匹配列名?【英文标题】:Match the column name based on the string in python? 【发布时间】:2021-05-20 12:13:42 【问题描述】:

我是 python 新手,在匹配 python 中 Dataframe 列的名称时遇到问题。所以,我有一个字符串s = "8907*890a",其中 a 是数据框的列名。现在我想将它与是否存在的 df 的列名相匹配。我已经尝试过了,但字符串被视为一个整体。如何从整个字符串中只获取“a”?

我的代码:

s = "8907*890a"

df=
      a  b  c
    0 rr 12 4
    1 rt 45 9
    2 ht 78 0
for col in df.columns:
    for i in s.split():
        print(i)

这给出了:

"8907*890a"

预期结果:

 a

【问题讨论】:

for i in s.split(): 更改为if col in s: print(col) 【参考方案1】:

split 函数接受分隔符作为参数。默认情况下,分隔符是空格。因此,当您尝试s.split() 时,解释器会在字符串中查找在这种情况下找不到的空格。所以它返回整个字符串作为输出。如果你尝试s.split('*'),你会得到

8907
890a

作为输出。在您的情况下,拆分字符串似乎不是提取列名的最佳选择。我会改为提取最后一个字符。这可以使用s[-1:]

【讨论】:

以上是关于根据python中的字符串匹配列名?的主要内容,如果未能解决你的问题,请参考以下文章

如果字符串数组中的列名在字符串数组中具有匹配的值,则获取DataRow

根据 dplyr 与另一个数据框的匹配更改数据框中的列名

替换熊猫数据框中部分匹配字符串的列名

正则表达式模式匹配python中的日期时间

SQL查找存储过程,列名,表,方法,字符串中匹配的字符串

对于每一行,找到与特定字符串匹配的单元格并返回列名的最后一个字符