gpt4 book ai didi

python - pandas 获取包含值的列的名称

转载 作者:行者123 更新时间:2023-11-30 22:21:43 24 4
gpt4 key购买 nike

我正在编写一个脚本并使用pandas 库。我是 pandas 库的新手,所以这个问题可能很愚蠢。我已将数据从 csv 导入到 pandas.dataframe 中。我的数据框如下所示:

                      set1            set2               set3      set4  
0 744110.0 507121.0 790001.0 785693.0
1 744107.0 507126.0 791002.0 788107.0
2 744208.0 535214.0 791103.0 788108.0
3 744210.0 534195.0 790116.0 784170.0

我面临两个问题:

问题1

csv 中的值是整数,我不知道为什么或如何弹出 .0,我不希望这种情况发生。

我使用以下代码行创建我的dataFrame:

df = pd.read_csv(file_path)

问题2

我想对集合进行搜索并获取包含值的集合的名称,例如:如果我传入值791103,则输出应为名称set3 作为字符串。

如何在 pandas 中实现这一点

请注意:不同的列可能有不同数量的项目,例如,set1 可能有 500 个总计值,而 set2 可能只有 40 个

.to_dict('list') 输出:

{'set1': [744110.0, 744107.0, 744208.0, 744210.0], 'set2': [507121.0, 507126.0, 535214.0, 534195.0], 'set3': [790001.0, 79100 2.0, 791103.0, 790116.0], ' set4': [785693.0, 788107.0, 788108.0, 788170.0]}

最佳答案

import numpy as np
import pandas as pd

""" set1 set2 set3 set4
0 744110.0 507121.0 790001.0 785693.0
1 744107.0 507126.0 791002.0 788107.0
2 744208.0 535214.0 791103.0 788108.0
3 744210.0 534195.0 790116.0 784170.0
"""
df = pd.read_clipboard(sep='\s{2,}', engine='python', dtype = 'int')
df

对于第一个问题,您可以在导入时设置数据类型。正如 @user32185 所提到的,NaN 在尝试转换为 int 时可能会导致问题。

pd.read_csv(filename, dtype = 'int')

对于你的第二个,我尝试了一些方法,但效果最好:

import numpy as np
df.iloc[np.where(df == 791103)]

输出:

    set3
2 791103

仅获取列名称:

df.iloc[np.where(df == 791103)].columns[0]

输出:

'set3'

链接:

Convert Pandas column containing NaNs to dtype `int`

https://chrisalbon.com/python/data_wrangling/pandas_create_column_using_conditional/

关于python - pandas 获取包含值的列的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48549844/

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