python修改csv数据(python修改csv的列名并保存)

http://www.itjxue.com  2023-03-29 04:18  来源:未知  点击次数: 

python修改csv文件

不能写入原文件。。。

要么写到另外文件,要么在文件的基础上追加,要么覆盖源文件。。不可能在一行读入后修改完再写到这一行。。

python对csv年龄一列划分范围改

python对csv年龄一列划分范围改

(1)单条件筛选

df[df[‘a’]30]

如果想筛选 a 列的取值大于 30 的记录, 但是之显示满足条件的 b,c 列的值可以这么写

df’b’,’c’[df[‘a’]30]

使用 isin 函数根据特定值筛选记录。筛选 a 值等于 30 或者 54 的记录

df[df.a.isin([30, 54])]

(2)多条件筛选

可以使用 (并)与 | (或)操作符或者特定的函数实现多条件筛选

使用 筛选 a 列的取值大于 30,b 列的取值大于 40 的记录

df[(df[‘a’] 30) (df[‘b’] 40)]

(3)索引筛选

a. 切片操作

df[行索引,列索引] 或 df列名 1,列名 2

#使用切片操作选择特定的行

df[1:4]

#传入列名选择特定的列

df’a’,’c’

b. loc 函数

当每列已有 column name 时,用 df [‘a’] 就能选取出一整列数据。如果你知道 column names 和 index,且两者都很好输入,可以选择 .loc 同时进行行列选择。

In [28]: df.loc[0,‘c’]

Out[28]: 4

In [29]: df.loc[1:4,[‘a’,‘c’]]

Out[29]:

a c

1 6 10

2 12 16

3 18 22

4 24 28

In [30]: df.loc[[1,3,5],[‘a’,‘c’]]

Out[30]:

a c

1 6 10

3 18 22

5 30 34

c. iloc 函数

如果 column name 太长,输入不方便,或者 index 是一列时间序列,更不好输入,那就可以选择 .iloc 了,该方法接受列名的 index,iloc 使得我们可以对 column 使用 slice(切片)的方法对数据进行选取。这边的 i 我觉得代表 index,比较好记点。

In [35]: df.iloc[0,2]

Out[35]: 4

In [34]: df.iloc[1:4,[0,2]]

Out[34]:

a c

1 6 10

2 12 16

3 18 22

In [36]: df.iloc[[1,3,5],[0,2]]

Out[36]:

a c

1 6 10

3 18 22

5 30 34

In [38]: df.iloc[[1,3,5],0:2]

Out[38]:

a b

1 6 8

3 18 20

5 30 32

d. ix 函数

ix 的功能更加强大,参数既可以是索引,也可以是名称,相当于,loc 和 iloc 的合体。需要注意的是在使用的时候需要统一,在行选择时同时出现索引和名称, 同样在同行选择时同时出现索引和名称。

df.ix[1:3,[‘a’,‘b’]]

Out[41]:

a b

1 6 8

2 12 14

3 18 20

In [42]: df.ix[[1,3,5],[‘a’,‘b’]]

Out[42]:

a b

1 6 8

3 18 20

5 30 32

In [45]: df.ix[[1,3,5],[0,2]]

Out[45]:

a c

1 6 10

3 18 22

5 30 34

e. at 函数

根据指定行 index 及列 label,快速定位 DataFrame 的元素,选择列时仅支持列名。

In [46]: df.at[3,‘a’]

Out[46]: 18

f. iat 函数

与 at 的功能相同,只使用索引参数

In [49]: df.iat[3,0]

Out[49]: 18

python筛选csv数据年龄在1-100的范围内

?

?

点赞文章给优秀博主打call~

便携平板价格

精选推荐

?广告

?

python如何修改csv某列数值?

f=open('xxx','r',encoding='utf-8')

file=f.readlines()

f.close()

f=open('xxx','w',encoding='utf-8')

for i in len(file):

----file[i]=file[i].split(',')

----file[i][1]=99

----for j in file[i]:

--------f.write(j+',')

----f.write('\n')

f.close()

说说如何利用 Python 处理 CSV 文件

CSV 表示 “Comma-Separated Values (逗号分隔的值) ” , CSV 文件是简化的电子表格,实际为纯文本文件。

一个 CSV 文件,格式是这样的:

因为 CSV 文件中的每个单元格都是以逗号分割,所以也许有人会对每行文本调用 split() 方法,来解析 CSV 文件。但 CSV 文件也有自己的转义字符,通过转义字符,允许逗号和其他字符作为值的一部分,但单纯使用 split() 方法不能处理这些转义字符。因为这些潜在的缺陷,所以建议总是使用 csv 模块来读写 CSV 文件。

csv 模块是 Python 自带的,所以可以直接导入。

要使用 csv 模块从 CSV 文件中读取数据,我们需要创建一个 Reader 对象。 通过 Reader 对象,我们可以迭代遍历 CSV 文件中的每一行内容。

运行结果:

要用 csv 模块读取 CSV 文件,首先先使用 open() 函数打开它 ,就像打开任何其他文本文件一样。然后将它传递给 csv .reader() 函数。 这个函数将返回一个 Reader 对象。注意,csv .reader() 函数不接受文件名作为入参。

要访问 Reader 对象中的值,最直接的方法,就是利用 list() 将它转换成一个普通 Python 列表。它实际为一个包含列表的列表,用于表示二维数据。

我们还可以使用表达式 data [ row ][ col ] 来访问 CSV 中特定行和列的值。其中, row 是 data 中一个列表的下标, col 是该列表中,我们想访问的项的下标:

运行结果:

运行结果:

Writer 对象可以让我们把数据写入 CSV 文件。

运行结果:

在 Windows 上,需要为 open() 函数的 newline 关键字参数传入一个空字符串。如果没有设置 newline 参数, output.csv 中的行距将变为两倍,如下图所示。

如果写入的内容包含逗号,那么 csv 模块会自动加上双引号,对其进行转义,如下例所示。

运行结果:

我们也可以利用 delimiter ,来制作 TSV 文件,TSV 是Tab-separated values的缩写,即以制表符作为分隔符的文件;利用 lineterminator 参数来设定行距。

运行结果:

这里利用 lineterminator='\n\n\n' 将行与行之间的字符变为三个换行符,效果就是实现了 3 倍行距。

(责任编辑:IT教学网)

更多

推荐JSP教程文章