熊猫-每行仅读取前几行

时间:2020-06-03 08:22:54

标签: python pandas csv dataframe

我有一个大型CSV文件,其中包含大约10000行文本信息,并且我的数据集的每一行都由多行组成。但是,我只想阅读说CSV文件每一行的前20行。

我在pandas n_rows方法中遇到了read_csv参数,该方法有助于我们限制要加载的数据集的行数。还有没有办法只能从熊猫的每一行中读取前20行数据?

3 个答案:

答案 0 :(得分:1)

您可以使用df = pd.read_csv('path\file.csv')来读取csv,而不是仅通过df_new = df.head(20)选择前20行。那是您在想什么吗?

答案 1 :(得分:0)

如果TiTo的答案不是您要寻找的答案,则可能是iloc方法。您可以执行firstRows = df.iloc[:20]来存储前20行。

但是,如果只需要前20行,则不应将整个文件加载到内存中。如您所提到的,这可以通过nrows参数来实现。

答案 2 :(得分:0)

如果我正确地回答了您的问题,则您的CSV文件有多行,其中每行都有多行,并由换行符'\ n'分隔。并且您想从每行中选择前三行(例如)。

这可以通过以下方式实现:

# Read in CSV file using pandas-
data = pd.read_csv("example.csv")

# The first two rows (toy example) of dataset are-
data.iloc[0,0]
# 'Hello, this is first line\nAnd this is the second line\nThird and final line'

data.iloc[1,0]
# 'Today is 3rd June\nThe year is 2020\nSummer weather'

# First row's first line-
data.iloc[0,0].split("\n")[0]
# 'Hello, this is first line'

# First row's first two lines-
data.iloc[0,0].split("\n")[0:2]
# ['Hello, this is first line', 'And this is the second line']

从行“ x”获取前“ n”行的通用语法(假设第一列具有字符串数据)是

data.iloc[x,0].split("\n")[:n]

要从前“ x”行中选择前“ m”行(假设有m行或更多),请使用以下代码:

data.iloc[:x, 0].apply(lambda y: y.split("\n")[0:m])

有帮助吗?