首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫指的是给予空白的价值

熊猫指的是给予空白的价值
EN

Stack Overflow用户
提问于 2017-05-05 11:40:47
回答 1查看 73关注 0票数 2

我有df3:

代码语言:javascript
运行
复制
                                  1     2    3
A    Battery Voltage, V (Avg)     12    13   14
A    Max Watt, W                  4     5    10
A    Battery Temperature, C       20    21   22

我想增加一个新的专栏:

代码语言:javascript
运行
复制
M = ['Battery Voltage, V (Avg)', 'Battery Temperature, C']

df3['Total/Max/Min'] = np.where(mask3, df3.mean(axis=1), df3.sum(axis=1))

但我对“平均”值的理解是空白。

代码语言:javascript
运行
复制
                                  1     2    3     Total/Max/Min
A    Battery Voltage, V (Avg)     12    13   14                   <--
A    Max Watt, W                  4     5    10        19
A    Battery Temperature, C       20    21   22                   <--

编辑:这两行的typestring,尽管这些值都是数字的。我似乎无法转换为float()

EDIT2:实际df:

代码语言:javascript
运行
复制
                                           1           2     3        4
CU0111-023349-J Output Energy, (Wh/h)      3.825    1.46    1.57    1.997
CU0111-023349-J Lights (Wh)                 1.53    1.46    1.57    1.997
CU0111-023349-J Lights+Media (Wh)           2.295   0         0       0
CU0111-023349-J Total Usage (h)             1       1         1       1
CU0111-023349-J Lights (h)                  0.4     1         1       1
CU0111-023349-J Light+Media (h)             0.6     0         0       0
CU0111-023349-J Battery Voltage, V (Max)    12.525  12.51   12.502  12.479
CU0111-023349-J Battery Voltage, V (Min)    12.44   12.467  12.421  12.409
CU0111-023349-J Battery Voltage, V (Avg)    12.463  12.494  12.484  12.454
CU0111-023349-J Max Watt, W                 5.213   2.784   3.723   3.615
CU0111-023349-J Battery Temperature, C      19.555  18.977  18.324  17.753
CU0111-023349-J Charge Energy, Wh/h         0.016   0.006   0.009   0.01
CU0111-023349-J Time of Full Charge         11:21   

实际代码:

代码语言:javascript
运行
复制
L = ['Battery Voltage, V (Max)','Max Watt, W']
M = ['Battery Voltage, V (Avg)','Battery Temperature, C']
mask1 = df3.index.get_level_values(1).isin(L)
mask3 = df3.index.get_level_values(1).isin(M)
mask2 = df3.index.get_level_values(1) == 'Battery Voltage, V (Min)'
df3['Total/Max/Min'] = np.where(mask1, df3.max(axis=1),np.where(mask2, df3.min(axis=1),np.where(mask3, df3.median(axis=1), df3.sum(axis=1))))
result:
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-05 13:27:59

更新:将所有列转换为数字类型的

代码语言:javascript
运行
复制
df3 = df3.apply(pd.to_numeric, errors='coerce')

我不能复制你的问题:

代码语言:javascript
运行
复制
In [182]: df3
Out[182]:
                             1   2   3
A Battery Voltage, V (Avg)  12  13  14
  Max Watt, W                4   5  10
  Battery Temperature, C    20  21  22

In [183]: mask3
Out[183]: [True, True, False]

In [184]: df3['Total/Max/Min'] = np.where(mask3, df3.mean(axis=1), df3.sum(axis=1))

In [185]: df3
Out[185]:
                             1   2   3  Total/Max/Min
A Battery Voltage, V (Avg)  12  13  14      13.000000
  Max Watt, W                4   5  10       6.333333
  Battery Temperature, C    20  21  22      63.000000

你能提供一个可重复的数据集吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43804052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档