mIPythonnCSVt@Cɏ݂sɂ́ipandasҁjFIPython - IT

mIPythonnCSVt@Cɏ݂sɂ́ipandasҁjFIPython

pandas.DataFrameNXto_csv\bhgāAf[^t[̓eCSVt@Cɏޕ@ЉB

» 2021N0914 0500 J
[CDeep InsiderҏW]

̋L͉łBo^ijƑSĂ܂B

uIPythonṽCfbNX

Aږڎ

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


pandas.DataFrame.to_csv\bh

@pandas񋟂DataFrameNXɂ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

  • pathFf[^t[̓eot@C̖OBK{
  • sepF؂蕶BȗBȗ̓J}u,vw肳ꂽ̂ƂĈ
  • na_repFl\\BȗBȗ͋󕶎u""vw肵̂ƂĈ
  • float_formatFl𕶎񉻂ăt@CɏލۂɎg鏑w蕶BȗBȗ͌̒l̂܂ܕ񉻂
  • columnsFǂ̗̒lނ̎wBȗBȗ͍sCfbNXɑāASĂ̗񂪏܂B
  • headerFwb_[s̎wBTrue^FalseA񃊃Xgw”\B񃊃Xgw肵ꍇ́A炪f[^t[̗񖼂̑Ƀwb_[sɎgBFalsew肵ꍇ́Awb_[s͏܂ȂBTruew肵ꍇ́Af[^t[̗񖼂wb_[sɏ܂BȗBȗTruew肳ꂽ̂ƂĈ
  • indexFsCfbNXނǂw肷iTrue^FalsejBȗBȗTruew肳ꂽ̂ƂĈisCfbNX܂j
  • index_labelFsCfbNX̗񖼂Ƃăwb_[sɏޒlw肷Bheaderp[^[indexp[^[TruȅꍇɁAindex_labelp[^[ɓnlsCfbNX̗񖼂Ƃăwb_[sɏ܂BȗBȗ͍sCfbNX̗񖼂͏܂Ȃ
  • quotingFCSVt@CɏފetB[h炩̈pň͂ނǂw肷Bw”\Ȃ̂́APythonɕWœYtcsvW[Œ`Ă萔
  • quotecharFetB[h͂ވp̎wB1̕BȗBȗ̓_uNI[gu"vw肳ꂽ̂ƂĈ

{IȎg

@ȉł́Ã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

@؂蕶ύ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̕\w肷

@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

l𕶎񉻂ۂ̏w

@l𕶎񉻂CSVt@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

wb_[s̎w

@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̗񖼂w

@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

sCfbNXo͂Ȃ

@܂łɌĂʂ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


o̎w

@̗񂾂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


NI[g̎w

@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'


uIPythonṽCfbNX

uIPythonv

Copyright© Digital Advantage Corp. All Rights Reserved.

X|T[̂m点PR

ڂ̃e[}

4AI by IT - AIAAA
Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
VXeJmEnE yirzPR
Ȃɂ߂̋LPR

RSSɂ‚

ACeBfBAIDɂ‚

[}KWo^

IT̃[}KẂA AׂĖłBЃ[}KWwǂB