[英]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.