任何建议在不删除任何列的情况下将private const string Format = "yyyy-MM-dd hh:mm:ss.fff";
public object ValidDate(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.Value == null)
{
return null;
}
var s = reader.Value.ToString();
DateTime result;
if (DateTime.TryParseExact(s, Format, CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
{
return result;
}
return DateTime.Now;
}
取消堆叠?
原始数据框如下所示:
column=periodo_dia
所需的数据框应该是:
| | year | month | day | periodo_dia | valor_medida | Score_recogida |
|---|------|-------|-----|-------------|--------------|----------------|
| 0 | 2015 | 4 | 18 | manana | 25.0 | 8.166667 |
| 1 | 2015 | 4 | 18 | noche | 47.5 | 0.000000 |
| 2 | 2015 | 4 | 18 | tarde | 20.0 | 0.000000 |
| 3 | 2015 | 4 | 19 | manana | 0.0 | 0.000000 |
| 4 | 2015 | 4 | 19 | noche | 0.0 | 4.066667 |
答案 0 :(得分:5)
您可以将get_dummies
与astype
一起用于将值转换为integer
,drop
和concat
:
df1 = pd.get_dummies(df['periodo_dia']).astype(int)
print df1
manana noche tarde
0 1 0 0
1 0 1 0
2 0 0 1
3 1 0 0
4 0 1 0
#drop column periodo_dia
df = df.drop('periodo_dia',axis=1)
print pd.concat([df, df1], axis=1)
year month day valor_medida Score_recogida manana noche tarde
0 2015 4 18 25.0 8.166667 1 0 0
1 2015 4 18 47.5 0.000000 0 1 0
2 2015 4 18 20.0 0.000000 0 0 1
3 2015 4 19 0.0 0.000000 1 0 0
4 2015 4 19 0.0 4.066667 0 1 0
答案 1 :(得分:0)
讨厌回答我自己的问题,但希望它可以帮助别人。这样做的任务:
df = pandas.concat([df.drop('periodo_dia',axis=1),
pandas.get_dummies(df['periodo_dia'])],axis=1)