首页 > 解决方案 > 检查包含数字的列中是否有字符串

问题描述

在下面的示例中,最后一列 (c) 包含名为 'new' 的随机字符串。那么有没有办法检查一个列是否包含一个字符串(不需要只是'新'。它可以是任何字符串)

df_sam = pd.DataFrame({
        'a' : ['rick','johnatthan','katei','diana','richard'],
        'b' : ['rich','roman','italy','ed','taylor'],
        'c' : [2,3,4,5,'new']
    })

标签: python

解决方案


这可以给你一个想法,

import pandas as pd
df_sam = pd.DataFrame({
        'a' : ['rick','johnatthan','katei','diana','richard'],
        'b' : ['rich','roman','italy','ed','taylor'],
        'c' : [2,3,4,5,'new']
    })

for colNames in df_sam.columns:
    for lenDf in range(len(df_sam[colNames])):
            if type(df_sam[colNames][lenDf]) == type(df_sam['a'][1]) and colNames == 'c':
                print(colNames, lenDf,df_sam[colNames][lenDf] )

如果您只想为最后一列自动化,

import pandas as pd
df_sam = pd.DataFrame({
        'a' : ['rick','johnatthan','katei','diana','richard'],
        'b' : ['rich','roman','italy','ed','taylor'],
        'c' : [2,3,4,5,'new'],
        'd': [2, 3, 4, 5, 'dnew']
    })
lenOfColNames = len(df_sam.columns)
counter = 0
for colNames in df_sam.columns:
    counter = counter + 1
    for lenDf in range(len(df_sam[colNames])):
            if type(df_sam[colNames][lenDf]) == type(df_sam['a'][1]) and counter == lenOfColNames:
                print(colNames, lenDf,df_sam[colNames][lenDf] )

推荐阅读