Python打印2D数组中用户定义的行数

Python打印2D数组中用户定义的行数,python,pymysql,Python,Pymysql,我有一个根据用户输入从SQL(使用PyMySQL)导入的行列表。有时,这些返回的行数可能超过5000行(这些行存储在2D数组中,至少有4列)。这对于用户在屏幕上打印时能够阅读是不实际的 我实现了一个限制器,它将根据用户的输入返回前X行数。但是,我想返回一个行的示例,而不是第一个X i、 e.如果用户选择100行,而不是获得前100行,他们将获得大小为100的样本,由数组中的随机行组成。有办法做到这一点吗 到目前为止,我掌握的代码是: with conn: cursor = conn.cur

我有一个根据用户输入从SQL(使用PyMySQL)导入的行列表。有时,这些返回的行数可能超过5000行(这些行存储在2D数组中,至少有4列)。这对于用户在屏幕上打印时能够阅读是不实际的

我实现了一个限制器,它将根据用户的输入返回前X行数。但是,我想返回一个行的示例,而不是第一个X

i、 e.如果用户选择100行,而不是获得前100行,他们将获得大小为100的样本,由数组中的随机行组成。有办法做到这一点吗

到目前为止,我掌握的代码是:

with conn:
   cursor = conn.cursor()
   cursor.execute(query, Pop_Lim)
   city = cursor.fetchall()

   if len(city) >= 50:
         print()
         print("This search will return ",len(city), "rows of data.")
         Ret_Lim = int(input("How many rows of data do you want to display? "))
         print()

         with conn:
            cursor = conn.cursor()
            cursor.execute(query, Pop_Lim)
            city = cursor.fetchmany(Ret_Lim)

            print("ID   :   CountryCode :   District    :   Population")
            for row in city:
               print(row["ID"], row["Name"]," :   ",row["CountryCode"]," :   ",row["District"]," :   ",row["Population"])     # insert spacers for legibility purposes
            print()
            print(Ret_Lim,"rows of data returned, as requested.")

我建议你用熊猫。

您可以将数据库导入pandas.DataFrame()中, 试一试

然后轻松执行所需的操作

在我看来,这是处理大型数据帧和表的最佳解决方案。您可以很容易地获得随机行作为整个数据帧的样本。 看看这里:

希望能有帮助

致意

import pandas as pd
df = pd.read_sql(query, connection,  params=(start_date, end_date))