gpt4 book ai didi

python - 在 Pandas 中查找数字列名称

转载 作者:太空狗 更新时间:2023-10-29 22:17:58 30 4
gpt4 key购买 nike

我需要在 Pandas 中选择列名称中仅包含数值的列,例如:

df=
0 1 2 3 4 window_label next_states ids
0 17.0 18.0 16.0 15.0 15.0 ddddd d 13.0
1 18.0 16.0 15.0 15.0 16.0 ddddd d 13.0
2 16.0 15.0 15.0 16.0 15.0 ddddd d 13.0
3 15.0 15.0 16.0 15.0 17.0 ddddd d 13.0
4 15.0 16.0 15.0 17.0 NaN ddddd d 13.0

所以我只需要选择前五列。像这样的东西:

df[df.columns.isnumeric()]

编辑

我想到了解决方案:

digit_column_names = [num for num in list(df.columns) if isinstance(num, (int,float))]
df_new = df[digit_column_names]

不是很 pythonic 或 pandasian,但它有效。

最佳答案

尝试

df.ids = df.ids.astype('object')    
new_df = df.select_dtypes([np.number])


0 1 2 3 4
0 17.0 18.0 16.0 15.0 15.0
1 18.0 16.0 15.0 15.0 16.0
2 16.0 15.0 15.0 16.0 15.0
3 15.0 15.0 16.0 15.0 17.0
4 15.0 16.0 15.0 17.0 NaN

编辑:如果您有兴趣选择数字列名称,可以执行以下操作。

df = pd.DataFrame({0: [1,2], '1': [3,4], 'blah': [5,6], 2: [7,8]})
df.columns = pd.to_numeric(df.columns, errors = 'coerce')
df[df.columns.dropna()]

你得到

    0.0 1.0 2.0
0 1 3 7
1 2 4 8

关于python - 在 Pandas 中查找数字列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43898414/

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