Python 带字符串的列的平均值、最小值、最大值(以熊猫为单位)

Python 带字符串的列的平均值、最小值、最大值(以熊猫为单位),python,pandas,Python,Pandas,我有一个这样的专栏 User time Column User1 time1 44 db User1 time2 55 db User1 time3 43 db User1 time4 no_available 如何计算平均值、最小值、最大值,只需取44 55 43(无db),忽略每个用户的“无可用”和“无功率”等值 另外,如果用户10次拥有10个值,那么如何获取当天的最后一个值 问候, 谢谢。该列有最大值和最小值。 给我一个大概的数字D 将熊猫作为pd导入 a=[“user

我有一个这样的专栏

User time  Column

User1 time1  44 db

User1 time2  55 db

User1 time3 43 db

User1 time4  no_available
如何计算平均值、最小值、最大值,只需取44 55 43(无db),忽略每个用户的“无可用”和“无功率”等值

另外,如果用户10次拥有10个值,那么如何获取当天的最后一个值

问候,


谢谢。

该列有最大值和最小值。 给我一个大概的数字D

将熊猫作为pd导入
a=[“user1”、“user1”、“user1”、“user1”]
a2=[“时间1”、“时间2”、“时间3”、“时间4”]
a3=['45分贝','55分贝','43分贝','no_available']
a=pd.DataFrame(a,列=[“用户”])
a2=pd.DataFrame(a2,列=[“时间”])
a3=pd.DataFrame(a3,列=[“列”])
数据=pd.concat([a,a2,a3],轴=1)
数据1=列表(数据[“列”])
h=[]
对于data1中的i:
尝试:
如果int(i[0:2]):
h、 追加(int(i[0:2]))
除:
印刷品(一)
最大(小时)

min(h)
如果所有整数都是整数,则可以使用
str.extract()
提取数字。然后,返回平均值、最大值等:

df = pd.DataFrame({'User': {0: 'User1', 1: 'User1', 2: 'User1', 3: 'User1'},
 'time': {0: 'time1', 1: 'time2', 2: 'time3', 3: 'time4'},
 'Column': {0: '44 db', 1: '55 db', 2: '43 db', 3: 'no_available'}})
df['Numbers'] = df['Column'].str.extract('(\d+)').astype(float)
print(df['Numbers'].mean(), df['Numbers'].max())

Out [1]:
47.333333333333336 55.0

编号为
-
的示例:

import pandas as pd
df = pd.DataFrame({'User': {0: 'User1', 1: 'User1', 2: 'User1', 3: 'User1'},
 'time': {0: 'time1', 1: 'time2', 2: 'time3', 3: 'time4'},
 'Column': {0: '44 db', 1: '-45.32 db', 2: '4,452.03 db', 3: 'no_available'}})
df['Numbers'] = df['Column'].str.replace(',','').str.extract('(-?\d+.?\d+)').astype(float)
print(df['Numbers'])
0      44.00
1     -45.32
2    4452.03
3        NaN
Name: Numbers, dtype: float64

有具体问题吗?请看,。你好,谢谢。。。。。它是有效的,但并非所有情况下都有效,我有一些负值,也有42.03 db或-45.32 dbseem的值,与str.extract(“(?\d+。?\d+”)一起工作,是正确的?@mbooma我已经更新了我的答案。你也应该找一个逗号以防万一。我已经包括了
.str.replace(',','')
。这种替换可能比带逗号的正则表达式模式更容易。请单击“我的解决方案”旁边的复选标记接受答案,如果有帮助,请向上投票。谢谢