Pandas:检查Pandas Dataframe列是否包含一个Dataframe。

huangapple go评论89阅读模式
英文:

Pandas: Check if Pandas Dataframe column contains a Dataframe

问题

我有一个DataFrame,其中有一列的值是DataFrame类型。我想要检查该列中的所有值是否都是DataFrame类型。

t_df = DataFrame(data={
    "r": [1,2,3],
    "r": ['a', 'b', 'c']
})
d = {
    "ts": [1e7, 1e8, 1e9],
    "value": [100, 200, 300],
    "value2": [1, 2, 3],
    "tvalue": [t_df, t_df, t_df]
}
df = pd.DataFrame(d)

如果我检查type(df['tvalue']),它显示为<class 'pandas.core.series.Series'>,如果我对value2列进行相同的检查,它也显示为<class 'pandas.core.series.Series'>

有没有办法确定tvalue列中的所有值是否都是DataFrame类型。

英文:

I have a DataFrame where there is a column with DataFrame type values. I would want to check if all the values in that column are of type DataFrame.

t_df = DataFrame(data= {
    &quot;r&quot;: [1,2,3],
    &quot;r&quot;: [&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]
})
d = {
    &quot;ts&quot;: [1e7, 1e8, 1e9],
    &quot;value&quot;: [100, 200, 300],
    &quot;value2&quot;: [1, 2, 3],
    &quot;tvalue&quot;: [t_df, t_df, t_df]
}
df = pd.DataFrame(d)

if I check type(df[&#39;tvalue&#39;]) it shows - &lt;class &#39;pandas.core.series.Series&#39;&gt; and if I do the same check for value2 column it shows &lt;class &#39;pandas.core.series.Series&#39;&gt; only.

Is there a way to determine if the all the values inside tvalue are of type DataFrame.

答案1

得分: 3

使用allisinstance来检查列tvalue中的所有值:

print(all((isinstance(x, pd.DataFrame) for x in df['tvalue'])))
True

使用all函数和生成器表达式(isinstance(x, pd.DataFrame) for x in df['tvalue'])来遍历列tvalue中的所有值,并检查它们是否都是pd.DataFrame类型。如果所有值都是pd.DataFrame类型,则返回True

英文:

Use all with isinstance by all values in column tvalue:

print (all((isinstance(x, pd.DataFrame) for x in df[&#39;tvalue&#39;])))
True

huangapple
  • 本文由 发表于 2023年8月8日 20:51:17
  • 转载请务必保留本文链接:https://go.coder-hub.com/76859744.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定