繁体   English   中英

确定 object 是字符串还是 dataframe

[英]Determining whether an object is a string or a dataframe

我有一些变量和单列数据框。

我正在尝试将它们(连接)排列成一个 dataframe。

问题是有些是单字符串,有些是单列数据框,我正在尝试遍历它们,所以我必须对不同的类型使用不同的方法。

我尝试了以下方法来确定是否正在传递单个字符串或 dataframe。

data = {'Column Name':  ['First value', 'Second value']}
a_dataframe = pd.DataFrame (data, columns = ['Column Name'])

a_single_string = 'text'
another_string = 'more text'

feature_cols = ['a_single_string', 'a_dataframe', 'another_string']

for column in feature_cols:
    if column in locals():
        if isinstance(column, str):
            print("str: " + column)

        elif isinstance(column, pd.DataFrame):
            print("df: " + column)

但它将字符串和 dataframe 视为字符串。
有什么解决办法吗?

您的代码将feature_cols定义为字符串列表。 因此,您的isinstance()测试返回的是字符串'a_dataframe'的类型,这与变量a_dataframe

这将修复您的测试:

feature_cols = [a_single_string, a_dataframe, another_string]

您也无法if column in locals():因为这需要将名称作为字符串(如在您的原始代码中)而不是变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM