gpt4 book ai didi

python - 如果数据框中不存在列,则返回空列

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:19 25 4
gpt4 key购买 nike

我创建了一个数据框 df 如下:

Type = ['A', 'B', 'C', 'D']
Size = [72,23,66,12]
df = pd.DataFrame({'Type': Type, 'Size': Size})

我可以使用以下方法提取任何现有列:

df_count = df['Size']

但是,如果数据框太大,我不知道该列是否存在于 df 中。在这种情况下,如果我调用一个专栏,例如df['Shape']如下:

df_null = df['Shape']

它引发了一个KeyError。但是我希望 df_null 应该得到一个名为 "Shape" 的空列。

最佳答案

使用DataFrame.get模式类似于:

In [3]: df.get('Size', pd.Series(index=df.index, name='Size'))
Out[3]:
0 72
1 23
2 66
3 12
Name: Size, dtype: int64

In [4]: df.get('Shape', pd.Series(index=df.index, name='Shape'))
Out[4]:
0 NaN
1 NaN
2 NaN
3 NaN
Name: Shape, dtype: float64

或者通过创建一个抽象函数来概括:

In [5]: get_column = lambda df, col: df.get(col, pd.Series(index=df.index, name=col))

In [6]: get_column(df, 'Size')
Out[6]:
0 72
1 23
2 66
3 12
Name: Size, dtype: int64

In [7]: get_column(df, 'Shape')
Out[7]:
0 NaN
1 NaN
2 NaN
3 NaN
Name: Shape, dtype: float64

另一种选择是使用 reindexsqueeze :

In [8]: df.reindex(columns=['Size']).squeeze()
Out[8]:
0 72
1 23
2 66
3 12
Name: Size, dtype: int64

In [9]: df.reindex(columns=['Shape']).squeeze()
Out[9]:
0 NaN
1 NaN
2 NaN
3 NaN
Name: Shape, dtype: float64

关于python - 如果数据框中不存在列,则返回空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47315716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com