Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找数据框中所有列的数据类型、唯一值和最大值_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 查找数据框中所有列的数据类型、唯一值和最大值

Python 查找数据框中所有列的数据类型、唯一值和最大值,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有一个使用以下脚本导入的csv import pandas as pd data = pd.read_csv("filen__new.csv") data.head() 我想知道每列的类型(即数字、布尔或任何其他类型) 当我执行data.info()时 <class 'pandas.core.frame.DataFrame'> RangeIndex: 200009 entries, 0 to 200008 Columns: 151 entries, itera

我有一个使用以下脚本导入的csv

import pandas as pd
data = pd.read_csv("filen__new.csv")
data.head()
我想知道每列的类型(即数字、布尔或任何其他类型) 当我执行
data.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 200009 entries, 0 to 200008
Columns: 151 entries, iterator to parse168
dtypes: float64(149), int64(1), object(1)

如果我有150列,我必须重复150次。有什么方法可以做得更好吗?

对于数据类型do
df.dtypes
,它将显示所有列类型

对于列中的所有唯一值,您可以使用
df.nunique()
查看有多少个和

for col in df:
    print(df[col].unique())
把它打印出来

要查找可以使用的所有最大值

for col in df:
    print(df[col].max())
打印。

如中所述,
pd.DataFrame.info()
默认情况下在
pd.options.display.max\u info\u列处截断。此行为可以通过参数
max\u cols
更改。默认值为100,如下所示:

print(pd.options.display.max_info_columns)
100
对于最小可复制示例(MRE)

pd.DataFrame
没有
unique
方法,只有
pd.Series
。因此,为了避免for循环,您可以将其应用于
pd.DataFrame

df1.apply(lambda x: x.unique())
对于新的问题,也许您可以按照本良好实践指南进行操作

最后,对Pandas文档进行了很好的解释,您可以参考它了解更多细节和一些更好的示例

import pandas as pd


n_columns = 150
df1 = pd.DataFrame(columns=[x for x in range(n_columns)], 
               data=[[x for x in range(n_columns)],
                     [x*100 for x in range(n_columns)]
                     ])
df1.info(max_cols=n_columns)

# You could access the types through
df1.dtypes

# You could access the column names through
df1.columns

# You could access the column max values as
df1.max()
df1.apply(lambda x: x.unique())