36_Pandas获取行数,列数和元素总数(大小)

36_Pandas获取行数,列数和元素总数(大小)

如何获取pandas.DataFrame和pandas.Series的行数,列数和总元素(大小)。

  • pandas.DataFrame
    • 显示行数,列数等:df.info()
    • 获取行数:len(df)
    • 获取列数:len(df.columns)
    • 获取行数和列数:df.shape
    • 获取元素总数(大小):df.size
    • 指定index时的注意事项
  • pandas.Series
    • 获取元素总数(大小):len(s),s.size
      将以泰坦尼克号幸存者数据为例。
import pandas as pd

df = pd.read_csv('./data/36/train.csv')

print(df.head())
#    PassengerId  Survived  Pclass  \
# 0            1         0       3
# 1            2         1       1
# 2            3         1       3
# 3            4         1       1
# 4            5         0       3
#
#                                                 Name     Sex   Age  SibSp  \
# 0                            Braund, Mr. Owen Harris    male  22.0      1
# 1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0      1
# 2                             Heikkinen, Miss. Laina  female  26.0      0
# 3       Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1
# 4                           Allen, Mr. William Henry    male  35.0      0
#
#    Parch            Ticket     Fare Cabin Embarked
# 0      0         A/5 21171   7.2500   NaN        S
# 1      0          PC 17599  71.2833   C85        C
# 2      0  STON/O2. 3101282   7.9250   NaN        S
# 3      0            113803  53.1000  C123        S
# 4      0            373450   8.0500   NaN        S

pandas.DataFrame

显示行数,列数等:df.info()

使用pandas.DataFrame的info()方法,可以显示信息,例如行数/列数,总内存使用量,每列的数据类型以及不缺少值的元素数。

df.info()
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 891 entries, 0 to 890
# Data columns (total 12 columns):
# PassengerId    891 non-null int64
# Survived       891 non-null int64
# Pclass         891 non-null int64
# Name           891 non-null object
# Sex            891 non-null object
# Age            714 non-null float64
# SibSp          891 non-null int64
# Parch          891 non-null int64
# Ticket         891 non-null object
# Fare           891 non-null float64
# Cabin          204 non-null object
# Embarked       889 non-null object
# dtypes: float64(2), int64(5), object(5)
# memory usage: 83.6+ KB

结果输出到标准输出,不能作为值获得。

获取行数:len(df)

可以使用Python内置函数len()获得pandas.DataFrame中的行数。 在示例中,它与print()一样显示,但是由于len()返回整数值,因此可以将其分配给其他变量或用于计算。

print(len(df))
# 891

获取列数:len(df.columns)

pandas.DataFrame中的列数可以通过将len()应用于columns属性来获得。

print(len(df.columns))
# 12

获取行数和列数:df.shape

可以使用pandas.DataFrame的shape属性按元组(行数,列数)获取行数和列数。

print(df.shape)
# (891, 12)

print(df.shape[0])
# 891

print(df.shape[1])
# 12

也可以通过解压缩将它们存储在不同的变量中。

row, col = df.shape
print(row)
# 891

print(col)
# 12

获取元素总数(大小):df.size

可以使用size属性获取pandas.DataFrame中的元素总数。这等于行数*列数的值。

print(df.size)
# 10692

print(df.shape[0] * df.shape[1])
# 10692

指定index时的注意事项

如果使用set_index()方法将数据列指定为索引,则该列将从数据主体中删除(值属性),因此不会计入列数。

df_multiindex = df.set_index(['Sex', 'Pclass', 'Embarked', 'PassengerId'])

print(len(df_multiindex))
# 891

print(len(df_multiindex.columns))
# 8

print(df_multiindex.shape)
# (891, 8)

print(df_multiindex.size)
# 7128

有关set_index(),请参见以下文章。

pandas.Series

从pandas.DataFrame中提取一行作为pandas.Series的示例。

s = df['PassengerId']
print(s.head())
# 0    1
# 1    2
# 2    3
# 3    4
# 4    5
# Name: PassengerId, dtype: int64

获取元素总数(大小):len(s),s.size

由于pandas.Series是一维的,因此可以使用len()或size属性获取元素的总数(大小)。 请注意,shape属性是具有1个元素的元组。

print(len(s))
# 891

print(s.size)
# 891

print(s.shape)
# (891,)

pandas.Series中没有info()方法。

  • 17
    点赞
  • 148
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值