我正在构建一个脚本来比较两个熊猫数据帧之间的单个值,并且在日期时间的输出值上停留了一段时间。有人可以解释.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)
{
}
}
答案 0 :(得分:2)
以python scalar
的形式返回数据的前几个元素。
item()方法返回Python timestamp
,即从日期Jan 01 1970 (UTC)
起经过的秒数。
返回指定位置的数据。
其中iloc [0]返回日期时间对象,该日期时间对象以"2019-04-16 00:00:00"
答案 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问题。