[英]How can I obtain and save row into csv depending of a column value of csv file?
我正在嘗試使用python來完成任務,而我是python的入門者。 我有一個很大的csv文件,其中我必須根據特定列的值划分成不同的csv文件。 例如,在color列中所有包含Red值的行,將其保存在一個csv文件中; 如果具有藍色值,則將包含它的行保存在其他csv文件中。
就像我說的,這是一個很大的csv文件,我要過濾的列中有很多彼此不同的值,因此寫入所有值將很繁瑣,但是如果沒有其他方法,將不會問題。
有人知道如何執行此任務嗎?
例:
name age colour grade
John 15 Red 8
Lucy 14 Blue 7
Katty 15 Red 9
Rob 16 Green 6
Mike 14 Blue 10
解:
red_colour.csv
name age colour grade
John 15 Red 8
Katty 15 Red 9
green_colour.csv
name age colour grade
Rob 16 Green 6
blue_colour.csv
name age colour grade
Lucy 14 Blue 7
Mike 14 Blue 10
編輯:我已經使用了代碼,但我不知道為什么我在讀取文件時出錯。 我正在RedHat機器中閱讀它。
# python3.6 example_read.py
Traceback (most recent call last):
File "example_read.py", line 3, in <module>
df = pandas.read_csv('/home/usrlogr/lista_blanca.csv')
File "/usr/local/lib/python3.6/site-packages/pandas/io/parsers.py", line 702, in parser_f
return _read(filepath_or_buffer, kwds)
File "/usr/local/lib/python3.6/site-packages/pandas/io/parsers.py", line 429, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "/usr/local/lib/python3.6/site-packages/pandas/io/parsers.py", line 895, in __init__
self._make_engine(self.engine)
File "/usr/local/lib/python3.6/site-packages/pandas/io/parsers.py", line 1122, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "/usr/local/lib/python3.6/site-packages/pandas/io/parsers.py", line 1853, in __init__
self._reader = parsers.TextReader(src, **kwds)
File "pandas/_libs/parsers.pyx", line 387, in pandas._libs.parsers.TextReader.__cinit__
File "pandas/_libs/parsers.pyx", line 705, in pandas._libs.parsers.TextReader._setup_parser_source
FileNotFoundError: [Errno 2] File b'/home/usrlogr/lista_blanca.csv' does not exist: b'/home/usrlogr/lista_blanca.csv'
有人知道是什么問題嗎? 我安裝了Python 3.6.8和Pandas
獲取數據中所有不同的顏色。 然后根據該顏色過濾每一行。 最后,保存到一個csv文件中。
import pandas as pd
df = pd.read_csv('myfile.csv')
#get all distinct colour
for color in df['colour'].unique():
#filter the data for each color and excluding John
df_temp = df[(df['colour'] == color) & (df['name'] != 'John')]
#save into csv file using filename: color_colour.csv
df_temp.to_csv(color.lower() + '_colour.csv', index=False)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.