我需要用格式化的字符串替换日期列。我可以这样做:
df = pd.DataFrame(pd.date_range('2016-01-01', '2016-01-02'), columns=['date'])
df['date'] = df['date'].dt.strftime('%Y-%m-%d')
但是,我想使用列索引而不是列名(数据帧传递给我,我不能保证列名是唯一的)。我可以这样做:
df.iloc[:, 0] = df.iloc[:, 0].dt.strftime('%Y-%m-%d')
这样可以正常工作,但对于长度为1的数据框,它会失败:
df = pd.DataFrame([pd.to_datetime('2016-01-01')], columns=['date'])
df.iloc[:, 0] = df.iloc[:, 0].dt.strftime('%Y-%m-%d')
_try_coerce_args中的pandas / core / internals.py(自我,值,其他)
- > 2265其他= other.astype('i8',copy = False).view('i8')
ValueError:基数为10的int()的无效文字:'2016-01-01'
请注意,按列名称分配仍然有效:
df['date'] = df.iloc[:, 0].dt.strftime('%Y-%m-%d')
我想理解为什么列索引的赋值对于长度为1的数据帧失败,以及我可以做些什么来使它工作。我使用pandas 0.19.1和python 3.5。
答案 0 :(得分:1)
有点破解,但有效 - 用@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent();
i.setClassName("com.test", "com.test.MainActivity");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("data", geoData);
context.startActivity(i)
}
选择逐列:
[]