pandas.DataFrameNXto_csv\bhgāAf[^t[̓eCSVt@Cɏޕ@ЉB
̋L͉łBo^ijƑSĂ܂B
import pandas as pd
import numpy as np
from pathlib import Path
data = {
'name': ['isshiki', 'endo', 'kawasaki'],
'age': [20, 25, np.nan],
'weight': [55.44, 66.77, 123.456]
}
df = pd.DataFrame(data)
print(df)
# name age weight
#0 isshiki 20.0 55.440
#1 endo 25.0 66.770
#2 kawasaki NaN 123.456
# {
fname = 'test.csv'
df.to_csv(fname)
print(Path(fname).read_text())
#,name,age,weight
#0,isshiki,20.0,55.44
#1,endo,25.0,66.77
#2,kawasaki,,123.456
# 蕶̕ύX
df.to_csv(fname, sep=' ')
print(Path(fname).read_text())
# name age weight
#0 isshiki 20.0 55.44
#1 endo 25.0 66.77
#2 kawasaki 123.456
# l̕\w肷
df.to_csv(fname, na_rep='nan')
print(Path(fname).read_text())
#,name,age,weight
#0,isshiki,20.0,55.44
#1,endo,25.0,66.77
#2,kawasaki,nan,123.456
# lۂ̏w
df.to_csv(fname, float_format='%+08.3f')
print(Path(fname).read_text())
#,name,age,weight
#0,isshiki,+020.000,+055.440
#1,endo,+025.000,+066.770
#2,kawasaki,,+123.456
# wb_[s̎w
df.to_csv(fname, header=['col0', 'col1', 'col2'])
print(Path(fname).read_text())
#,col0,col1,col2
#0,isshiki,20.0,55.44
#1,endo,25.0,66.77
#2,kawasaki,,123.456
# sCfbNX̗w
df.to_csv(fname, index_label='idx')
print(Path(fname).read_text())
#idx,name,age,weight
#0,isshiki,20.0,55.44
#1,endo,25.0,66.77
#2,kawasaki,,123.456
# sCfbNXo͂Ȃ
df.to_csv(fname, index=False)
print(Path(fname).read_text())
#name,age,weight
#isshiki,20.0,55.44
#endo,25.0,66.77
#kawasaki,,123.456
# o̎w
df.to_csv(fname, columns=['name', 'weight'])
print(Path(fname).read_text())
#,name,weight
#0,isshiki,55.44
#1,endo,66.77
#2,kawasaki,123.456
# NI[g̎w
import csv
df.to_csv(fname, quoting=csv.QUOTE_ALL)
print(Path(fname).read_text())
#"","name","age","weight"
#"0","isshiki","20.0","55.44"
#"1","endo","25.0","66.77"
#"2","kawasaki","","123.456"
df.to_csv(fname, quoting=csv.QUOTE_NONNUMERIC, quotechar="'")
print(Path(fname).read_text())
#'','name','age','weight'
#0,'isshiki',20.0,55.44
#1,'endo',25.0,66.77
#2,'kawasaki','',123.456
# tB[h͂ނ̂Ɏgp̂tB[hɊ܂܂Ăꍇ̏
data = {
"name": ["chak'n", "and pop"],
"value": [100, 120]
}
df = pd.DataFrame(data)
print(df)
# name value
#0 chak'n 100
#1 and pop 120
df.to_csv(fname, quoting=csv.QUOTE_NONNUMERIC, quotechar="'")
print(Path(fname).read_text())
#'','name','value'
#0,'chak''n',100
#1,'and pop',120
df.to_csv(fname, sep=' ', quoting=csv.QUOTE_NONE, escapechar='\\')
print(Path(fname).read_text())
# name value
#0 chak'n 100
#1 and\ pop 120
@pandasDataFrameNXɂto_csv\bhAgƂŃf[^t[Ɋi[Ăf[^CSVt@CւƏoB
@ȉ͖{eŏЉp[^[܂ށAto_csv\bh̊{Iȍ\B
pandas.DataFrame.to_csv(path, sep, na_rep, float_format, columns, header,
index, index_label, quoting, quotechar)
@{eł͈ȉ̃p[^[ЉBSẴp[^[ɂẮApandas̃hLgupandas.DataFrame.to_csvvQƂ̂ƁB
@ȉł́ÃR[hō쐬f[^t[CSVt@Cɏނ̂ƂB
import pandas as pd
import numpy as np
from pathlib import Path
data = {
'name': ['isshiki', 'endo', 'kawasaki'],
'age': [20, 25, np.nan],
'weight': [55.44, 66.77, 123.456]
}
df = pd.DataFrame(data)
print(df)
# name age weight
#0 isshiki 20.0 55.440
#1 endo 25.0 66.770
#2 kawasaki NaN 123.456
@ԊȒPȂ̂́Aރt@Cw肵āÃ\bhĂяoBȉɗB
fname = 'test.csv'
df.to_csv(fname)
print(Path(fname).read_text())
#,name,age,weight
#0,isshiki,20.0,55.44
#1,endo,25.0,66.77
#2,kawasaki,,123.456
@o͌ʂƁAwb_[s̐擪ɂ͍sCfbNX̗ȂAes̐擪ɍsCfbNXA蕶J}u,vƂȂĂAl܂邱ƂȂǂ͂B
@蕶ύXɂsepp[^[ɒ1̕w肷BȉɗB
df.to_csv(fname, sep=' ')
print(Path(fname).read_text())
# name age weight
#0 isshiki 20.0 55.44
#1 endo 25.0 66.77
#2 kawasaki 123.456
@̗ł́usep=' 'vƂĂ̂ŔpŊetB[hĂB
@l܂ރtB[hCSVt@CɏލۂɁAǂȕ\Ƃ邩w肷ɂna_repp[^[ɂ̒lw肷BȉɗB
df.to_csv(fname, na_rep='nan')
print(Path(fname).read_text())
#,name,age,weight
#0,isshiki,20.0,55.44
#1,endo,25.0,66.77
#2,kawasaki,nan,123.456
@̗ł́Auna_rep='nan'vƂĂ̂ŁACSVt@C̊YtB[hɂ́unanv܂ĂB
@lCSVt@CɏލۂɁAǂ̂悤Ȍ`ɏ邩float_formatp[^[ŎwłBȉɗB
df.to_csv(fname, float_format='%+08.3f')
print(Path(fname).read_text())
#,name,age,weight
#0,isshiki,+020.000,+055.440
#1,endo,+025.000,+066.770
#2,kawasaki,,+123.456
@w蕶́u%vŎn܂ǍɁi̕tAȂǂw肷jtOƃtB[h̍ŏAɁu.v̌ɏ_ȉ̐xƁiAAw\LȂǂjwqB
@̗ł́u+v͏ɕttOŁAu0v0߂\tOAu8vtB[h̍ŏAu3v͏_ȉ3܂ł\wAṒufv_\ӖĂBCSVt@C̓eƕt킹Ă݂ĂقB
@f[^t[̗CSVt@C̃wb_[sƂقȂ̂ɂAheaderp[^[Ƀwb_[s̓ew肷BȉɗB
df.to_csv(fname, header=['col0', 'col1', 'col2'])
print(Path(fname).read_text())
#,col0,col1,col2
#0,isshiki,20.0,55.44
#1,endo,25.0,66.77
#2,kawasaki,,123.456
@ȂAwb_[so͂ȂƂɂ́Auheader=FalsevƂ悢i͏ȗjB
@sCfbNX̗wb_[sɊ܂߂Ƃɂ́Aindex_labelp[^[gpBȉ̗͂ႾB
df.to_csv(fname, index_label='idx')
print(Path(fname).read_text())
#idx,name,age,weight
#0,isshiki,20.0,55.44
#1,endo,25.0,66.77
#2,kawasaki,,123.456
@ȂÃp[^[headerp[^[FalseȊÔƂAȉŏЉindexp[^[TruêƂɂ@\i܂Awb_[so͂AsCfbNXo͂ƂÃp[^[Ɏw肵o͂jB
@܂łɌĂʂAto_csv\bh̓ftHgōsCfbNXis̐擪Ɂjo͂B߂Ƃɂ́Aindexp[^[Falsew肷BȉɗB
df.to_csv(fname, index=False)
print(Path(fname).read_text())
#name,age,weight
#isshiki,20.0,55.44
#endo,25.0,66.77
#kawasaki,,123.456
@̗CSVt@Cɏ݂A̗vfƂ郊XgiV[PXjcolumnsp[^[Ɏw肷BȉɗB
df.to_csv(fname, columns=['name', 'weight'])
print(Path(fname).read_text())
#,name,weight
#0,isshiki,55.44
#1,endo,66.77
#2,kawasaki,123.456
@to_csv\bhł͊{Iɂ͊etB[h炩̈płȂׂ͂܂Ȃ悤ɂĂiPythonɕWYtcsvW[csv.QUOTE_MINIMALlɑΉjBύXɂ́Aquotingp[^[csvW[Œ`Ălw肷B
@ȉ̗ł́ASẴtB[h͂ނ悤Ɏw肵ĂB
import csv
df.to_csv(fname, quoting=csv.QUOTE_ALL)
print(Path(fname).read_text())
#"","name","age","weight"
#"0","isshiki","20.0","55.44"
#"1","endo","25.0","66.77"
#"2","kawasaki","","123.456"
@ftHgł͈pɃ_uNI[gu"vĝŁÂ悤ȏo͌ʂƂȂBpύXɂ́Aquotecharp[^[ɒ1̕w肷B
@ȉ͐lȊÕtB[hVONI[gu'vň͂ނ悤ɎwႾB
df.to_csv(fname, quoting=csv.QUOTE_NONNUMERIC, quotechar="'")
print(Path(fname).read_text())
#'','name','age','weight'
#0,'isshiki',20.0,55.44
#1,'endo',25.0,66.77
#2,'kawasaki','',123.456
@ȂAtB[h͂ނ̂Ɏgp̂tB[hɊ܂܂Ăꍇɂ́A͎Iɓdi̕xJԂjB
@ႦAȉ̂悤ȃf[^t[ƂB
data = {
"name": ["chak'n", "and pop"],
"value": [100, 120]
}
df = pd.DataFrame(data)
print(df)
# name value
#0 chak'n 100
#1 and pop 120
@CSVt@CɁilȊÕtB[hjVONI[gň͂ŏo͂ƂǂȂ邾낤Buchak'nvƂtB[hɒڂꂽB
df.to_csv(fname, quoting=csv.QUOTE_NONNUMERIC, quotechar="'")
print(Path(fname).read_text())
#'','name','value'
#0,'chak''n',100
#1,'and pop',120
@o͂Ɓuchak''nvƃVONI[gdĂ邱ƂB
@܂Aȉ͋蕶ƂāACSVt@Cɏ݂sƂR[hAx́uand popvƂtB[hɋ܂܂Ă邱ƂBd̂ł͂ȂA炩̕ŃGXP[vƂɂ͎̂悤escapecharp[^[gB
df.to_csv(fname, sep=' ', quoting=csv.QUOTE_NONE, escapechar='\\')
print(Path(fname).read_text())
# name value
#0 chak'n 100
#1 and\ pop 120
@escapecharp[^[́Adoublequotep[^[Ƒgݍ킹ĎgƂłBdoublequotep[^[͍d𐧌䂷p[^[ŃftHglTrueidjɂȂĂBFalseɂescapecharp[^[Ƒgݍ킹ĂB
df.to_csv(fname, quoting=csv.QUOTE_ALL, quotechar="'", doublequote=False, escapechar='\\')
print(Path(fname).read_text())
#'','name','value'
#'0','chak\'n','100'
#'1','and pop','120'
uIPythonv
Copyright© Digital Advantage Corp. All Rights Reserved.