Python,Plotly下的tips数据来自哪里?

neu*_*ame 3 python plotly

import plotly.express as px
tips = px.data.tips()
tips
px.histogram(tips, x="total_bill", y="tip", histfunc="sum", color="smoker")
Run Code Online (Sandbox Code Playgroud)

只需几行,“提示”中就已经有所有这些数据,我很困惑这些数字来自哪里?非常感谢提示

Out[125]: 
     total_bill   tip     sex smoker   day    time  size
0         16.99  1.01  Female     No   Sun  Dinner     2
1         10.34  1.66    Male     No   Sun  Dinner     3
2         21.01  3.50    Male     No   Sun  Dinner     3
3         23.68  3.31    Male     No   Sun  Dinner     2
4         24.59  3.61  Female     No   Sun  Dinner     4
..          ...   ...     ...    ...   ...     ...   ...
239       29.03  5.92    Male     No   Sat  Dinner     3
240       27.18  2.00  Female    Yes   Sat  Dinner     2
241       22.67  2.00    Male    Yes   Sat  Dinner     2
242       17.82  1.75    Male     No   Sat  Dinner     2
243       18.78  3.00  Female     No  Thur  Dinner     2

[244 rows x 7 columns]
Run Code Online (Sandbox Code Playgroud)

fur*_*ras 7

使用

import plotly.express as px

print(px.data.__file__)
Run Code Online (Sandbox Code Playgroud)

您可以查看源代码的路径并检查它。

深入研究源代码,我发现 Linux 上的数据位于文件夹中

/usr/local/lib/python3.7/dist-packages/plotly/package_data/datasets/
Run Code Online (Sandbox Code Playgroud)

作为.csv压缩文件的文件.gz,因此pandas.read_csv()可以毫无问题地读取它。
tips()用来pandas.read_csv()阅读它。


您可以px.data使用以下方式显示其他读取数据集的函数dir()

import plotly.express as px

for name in dir(px.data):
    if '__' not in name:
        print(name)
Run Code Online (Sandbox Code Playgroud)

结果

absolute_import
carshare
election
gapminder
iris
tips
wind
Run Code Online (Sandbox Code Playgroud)

可能所有这些(除了absolute_import)都是读取.gz带有数据的文件的函数。

print(px.data.carshare())
print(px.data.election())
print(px.data.gapminder())
print(px.data.iris())
print(px.data.tips())
print(px.data.wind())
Run Code Online (Sandbox Code Playgroud)