Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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 Pandas-仅读取每行的前几行_Python_Pandas_Csv_Dataframe - Fatal编程技术网

Python Pandas-仅读取每行的前几行

Python Pandas-仅读取每行的前几行,python,pandas,csv,dataframe,Python,Pandas,Csv,Dataframe,我有一个很大的CSV文件,其中包含大约10000行文本信息,数据集的每一行都由许多行组成。但是,我只想阅读CSV文件中每行的前20行 我在pandasread\u csv方法中遇到了n\u rows参数,它帮助我们限制要加载的数据集的行数。是否有一种方法可以让我们只从pandas中的每一行读取前20行数据 您可以使用df=pd.read\u csv('path\file.csv')读取csv,然后通过df\u new=df.head(20)选择前20行。这就是你的想法吗?如果TiTo的答案不是你

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


我在pandas
read\u csv
方法中遇到了
n\u rows
参数,它帮助我们限制要加载的数据集的行数。是否有一种方法可以让我们只从pandas中的每一行读取前20行数据

您可以使用
df=pd.read\u csv('path\file.csv')
读取csv,然后通过
df\u new=df.head(20)
选择前20行。这就是你的想法吗?

如果TiTo的答案不是你想要的,那么可能是iloc方法。您可以通过执行
firstRows=df.iloc[:20]
来存储前20行


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

如果我没有弄错您的问题,您的CSV文件有多行,其中每行有多行由换行符“\n”分隔。您希望从每行中选择第一行(例如)3行

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

# 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”的一般语法为:

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

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

这有帮助吗?

您可以发布示例数据集吗?换行符不是以CSV文件中的“行”结尾吗?一行怎么可能由多行组成?谢谢。阿伦提供的解决方案适合我,我会编辑我的问题。谢谢阿伦。这是我一直在寻找的东西,还有一件事。如何将您的通用语法应用于整个数据帧。例如,我有50行数据,根据您的语法,我可以得到特定行“x”的前“n”行。但是,如果我想对所有行执行此操作,并将结果存储到新的数据帧?@dmorgan,我已经添加了代码来回答您的问题。如果它回答了你的问题,你能把它标记为帮助你的问题吗?谢谢阿伦。行
data.iloc[:x, 0].apply(lambda y: y.split("\n")[0:m])