Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PythonPivot:扩展列不起作用_Python_Pandas_Pivot - Fatal编程技术网

PythonPivot:扩展列不起作用

PythonPivot:扩展列不起作用,python,pandas,pivot,Python,Pandas,Pivot,我正试着扩大测量范围。 我不知道为什么它不起作用。。 有人能帮忙吗。谢谢 以下是数据集的head() year month measure day Temp 0 2014 12 Max.TemperatureF X1 64 1 2014 12 Mean.TemperatureF X1 52 2 2014 12 Min.TemperatureF X1 39 3 2014 12 Max.Dew.P

我正试着扩大测量范围。 我不知道为什么它不起作用。。 有人能帮忙吗。谢谢

以下是数据集的head()

    year    month   measure        day  Temp
0   2014    12  Max.TemperatureF    X1  64
1   2014    12  Mean.TemperatureF   X1  52
2   2014    12  Min.TemperatureF    X1  39
3   2014    12  Max.Dew.PointF      X1  46
4   2014    12  MeanDew.PointF      X1  40
守则:

df = df.pivot)table(index=['year','month','day'],columns='measure',values='Temp')
错误:

DataError: No numeric types to aggregate

用于此

import pandas as pd

df = pd.DataFrame({
    "year":  [2014]*5,
    "month": [12]*5,
    "day": [1]*5,
    "measure": ["Max.TemperatureF", "Mean.TemperatureF", "Min.TemperatureF", "Max.Dew.PointF", "Mean.Dew.PointF"],
    "Temp": [64, 52, 39, 46, 40]
})
df.head()

我认为
pivot
不会处理索引中的多个列。请尝试使用透视表?谢谢您的帮助。我试过了,现在出现了一个新错误:“DataError:没有要聚合的数字类型”是什么给出了
df.Temp.dtype
?有关其他解决方案,请参见此示例:)数据错误:没有要使用的数字类型aggregate@phil这意味着
Temp
列中有非数字数据。我通过将玩具示例中的一个temp更改为
“test”
复制了您的错误。我猜字段中有一个字符串,需要提前将其替换为
None
,以便将其正确表示为null/NaN。
   year  month  day            measure  Temp
0  2014     12    1   Max.TemperatureF    64
1  2014     12    1  Mean.TemperatureF    52
2  2014     12    1   Min.TemperatureF    39
3  2014     12    1     Max.Dew.PointF    46
4  2014     12    1    Mean.Dew.PointF    40
df.pivot_table(values="Temp", index=["year", "month", "day"], columns="measure")
df.head()
measure         Max.Dew.PointF  Max.TemperatureF  Mean.Dew.PointF  Mean.TemperatureF  Min.TemperatureF
year month day
2014 12    1                46                64               40                 52                39