如何获取熊猫数据帧第一行的每个元素的数据类型?

时间:2020-04-16 22:11:16

标签: pandas

我有一个包含库存信息的数据框

stocks_df.head()

    Symbol  Security    GICS Sector GICS Sub Industry   Price_1_1   Price_3_23  Price_4_9   Shares
index                               
0   MMM 3M Company  Industrials Industrial Conglomerates    180 117.87  147.78  575261000
1   ABT Abbott Laboratories Health Care Health Care Equipment   86.95   62.82   86.04   1763433000
2   ABBV    AbbVie Inc. Health Care Pharmaceuticals 89.55   64.5    79.75   1476673000
3   ABMD    ABIOMED Inc Health Care Health Care Equipment   168.81  132.34  160.08  45063000
4   ACN Accenture plc   Information Technology  IT Consulting & Other Services  210.15  143.69  177.92  637027000

当我查看获得的数据类型时

stocks_df.dtypes

Symbol               object
Security             object
GICS Sector          object
GICS Sub Industry    object
Price_1_1            object
Price_3_23           object
Price_4_9            object
Shares               object
dtype: object

我意识到熊猫通过使用指向字符串对象的指针数组来提供闪电般的快速访问。 这些线程中对此进行了明确的讨论。

Strings in a DataFrame, but dtype is object

https://www.gormanalysis.com/blog/python-pandas-for-your-grandpa-series-creation/

但是当我检查特定列的数据类型时,我发现了类型,系列而不是对象

print(type(stocks_df["Shares"]))

<class 'pandas.core.series.Series'>

但实际输入都是字符串

print((stocks_df["Shares"][0]))
print(type(stocks_df["Shares"][0]))

575261000
<class 'str'>

OTOH,如果我尝试以此方式查找条目

print(stocks_df.iloc[:1, stocks_df.columns.get_loc('Shares')],'\n')
print(type(stocks_df.iloc[:1, stocks_df.columns.get_loc('Shares')]))

我明白了

index
0    575261000
Name: Shares, dtype: object 

<class 'pandas.core.series.Series'>

此数据框是从字符串值的电子表格创建的。

在第一个查询stocks_df.dtypes中,每一列都是对象类型。

在第二个查询中,键入(stocks_df [“ Shares”]),列的类型为series。

获取行中每个条目的实际数据类型的适当语法是什么?

我在问这个问题和这些主题之前进行了搜索

pandas how to check dtype for all columns in a dataframe?

https://www.pythonprogramming.in/how-to-check-the-data-type-of-dataframe-columns-in-pandas.html

说我的查询stocks_df.dtypes应该为每个条目显示“ class'str”。

0 个答案:

没有答案