使用不同的定位器访问单个熊猫值

时间:2019-05-23 17:32:01

标签: python pandas indexing

我正在构建一个脚本来比较两个熊猫数据帧之间的单个值,并且在日期时间的输出值上停留了一段时间。有人可以解释.iloc [0]和.item()之间的区别吗?

我目前正在使用.iloc [0],因为根据数据的性质,我具有单个匹配项,但是从理论上讲,.item()应该产生相同的输出。

public partial class workPlacePlan : Form
    {

        public workPlacePlan()
        {
            InitializeComponent();
        }

        private void workPlacePlan_Load(object sender, EventArgs e)
        {
            this.MaximumSize = this.Size;
            this.MinimumSize = this.Size;

            int cboId;
            int i = 1;

            string cboName; int c = 1;
            var items = new Dictionary<int, string>();

            ComboBox[] cbo = {
                cbo_1, cbo_2
            };

            foreach(ComboBox cbos in cbo)
            {
                items.Add(0, "-------");
                i = 1;
                while (i <= 24)
                {
                    cboId = i;
                    cboName = TimeSpan.FromHours(i).ToString("hh':'mm");

                    items.Add(cboId, cboName);
                    i++;
                }
                cbos.Tag = c;
                cbos.DataSource = new BindingSource(items, null);
                cbos.DisplayMember = "Value";
                cbos.ValueMember = "Key";
                items.Clear();

                cbos.SelectedIndexChanged += new EventHandler(cboSelected);

                c++;

            }

        }

        public void cboSelected(object sender, EventArgs e)
        {
            ComboBox cb = ((ComboBox)sender);
            int i_tmp;
            int tg = Int32.Parse(cb.Tag.ToString());

            if(tg % 2 == 0) //if is even
            {
                i_tmp= tg - 1;
            }
            else
            {
                i_tmp = tg + 1;
            }

        }

        private void cmd_Save_Click(object sender, EventArgs e)
        {

        }
    }

3 个答案:

答案 0 :(得分:2)

Series.item()

python scalar的形式返回数据的前几个元素。 item()方法返回Python timestamp,即从日期Jan 01 1970 (UTC)起经过的秒数。

Series.iloc[0]

返回指定位置的数据。 其中iloc [0]返回日期时间对象,该日期时间对象以"2019-04-16 00:00:00"

格式表示

Example to convert between the two

答案 1 :(得分:0)

我最近刚遇到这个问题。 Item为您提供了您可能认为像“原始”时间戳数据的东西。您可以使用pd.to_datetime(variable_name)对其进行修复,其中变量名等于使用.item()获得的数字字符串

希望这会有所帮助

答案 2 :(得分:0)

item正在从基础数据中提取第一个值,在这种情况下,基础数据是int 1555372800000000000000000。

  

将基本数据的第一个元素作为python返回   标量

使用构造函数将其作为时间戳读取:

In [11]: pd.Timestamp(1555372800000000000)
Out[11]: Timestamp('2019-04-16 00:00:00')

与日期匹配的

注意:这是纪元时间(以纳秒为单位):

In [12] pd.Timestamp(1555372800000000000, unit='ns')
Out[12]: Timestamp('2019-04-16 00:00:00')

注意:pandas item()直接调用numpy值,即s.values.item(),因此看起来这是一个numpy问题,而不是pandas问题。