pandas数据帧中的值的平均值

时间:2017-12-01 19:50:20

标签: python pandas dataframe mean

我有一个数据框,例如:

Val1    Val2
1        4
2        10
2        5
1        7
2        0
1        20

我想得到Val2中Val1值等于1(在同一行中)的所有数字的均值。如果不使用循环我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

你可以尝试

Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Xml.Serialization
Imports System.Xml

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim ipAddress As String = txtIP.Text.Trim()
        lblStatus.Text = GetGeoData(ipAddress).CountryName

    End Sub

    Public Function GetGeoData(ByVal ipAddress As String) As Response

        Dim string_writer As New StringWriter()


        Dim request = CType(WebRequest.Create(String.Format("https://freegeoip.net/xml/{0}", ipAddress)), HttpWebRequest)
        Try
            Dim response = request.GetResponse
            Dim responseStream = response.GetResponseStream
            Dim reader = New StreamReader(responseStream, Encoding.UTF8)

            Dim ms As XmlSerializer = New XmlSerializer(GetType(Response))

            Dim xmlReader As XmlReader = _
                xmlReader.Create(New System.IO.StringReader(reader.ReadToEnd))
            Dim r = CType(ms.Deserialize(xmlReader), Response)

            Return r
        Catch ex As WebException
            Return Nothing
        End Try

    End Function
End Class
Public Class Response
    Public Property IP As String
    Public Property CountryCode As String
    Public Property CountryName As String
    Public Property RegionCode As String
    Public Property RegionName As String
    Public Property City As String
    Public Property ZipCode As String
    Public Property Latitude As String
    Public Property Longitude As String
    Public Property MetroCode As String
End Class

答案 1 :(得分:0)

我想你只想将均值作为一个简单的浮点数。在这种情况下,您可以:

df[df["Val1"] == 1]["Val2"].mean()

答案 2 :(得分:0)

其他答案也应该提供正确的答案,但我相信最常用的方法是: df.loc[df['Val1']==1, 'Val2'].mean()