介绍
- 曾几何时,我有机会创建一个批处理,它使用 API 从服务器获取 CSV 文件并将编辑后的版本加载到我的服务中。当时我想将其保留为执行日志。
- 我认为读取 CSV 文件并对其进行修改对于 Web 应用程序开发和机器学习来说都是一样的。我希望它可以帮助其他人。
安装熊猫
% pip install pandas
% pip list | grep pandas #バージョン
pandas 1.5.1
1.读取CSV文件
import pandas as pd
file = PATH #取得したいファイルのPATH
df = pd.read_csv(file, encoding = "utf-8") #encodingは案件によって変えてください
这次我将适当地创建一个df
df = pd.DataFrame({'name': ["tanaka taro", "yamamoto taro", "ota taro"], 'zipcode': ['111-1111', '222-2222', '333-3333'], 'school': ['新潟大', '新潟大', '千葉大']})
print(df)
# name zipcode school
#0 tanaka taro 111-1111 新潟大
#1 yamamoto taro 222-2222 新潟大
#2 ota taro 333-3333 千葉大
2. 编辑
2.1 当您想将一列分成两列时。
在这里,写将name分为firstname和lastname的过程。
df[["lastname","firstname"]] = df["name"].str.split(' ', expand=True)
print(df)
# name zipcode school lastname firstname
#0 tanaka taro 111-1111 新潟大 tanaka taro
#1 yamamoto taro 222-2222 新潟大 yamamoto taro
#2 ota taro 333-3333 千葉大 ota taro
请注意,它是像df[['column1','column2']] 这样的列表中的列表。
如果只有一个列表,则该过程正在获取一列。
请注意会出现错误 raise ValueError( ValueError: Cannot set a DataFrame with multiple columns to the single column ('lastname', 'firstname')
这一次,我想用半角空格分隔,所以我使用了 str.split(' '),但请根据要分隔的字符进行更改。不要忘记expand=True。
2.2 删除不必要的列
在 2.1 中创建的 df 中有一个 name 列。我们不再使用它,所以让我们删除它
df.drop(columns='name', inplace=True)
print(df)
# zipcode school lastname firstname
#0 111-1111 新潟大 tanaka taro
#1 222-2222 新潟大 yamamoto taro
#2 333-3333 千葉大 ota taro
inplace=True 是一个选项,它使对 df 的更改成为非临时性的(立即更改目标)。
2.3 当您想从列中删除某些字符时
下一步是从邮政编码列中删除“-”(连字符)。
这也可以通过指定列并使用replace 轻松完成
df['zipcode'] = df['zipcode'].str.replace('-', '')
print(df)
# zipcode school lastname firstname
#0 1111111 新潟大 tanaka taro
#1 2222222 新潟大 yamamoto taro
#2 3333333 千葉大 ota taro
2.4 从一列中提取值,不重复。
假设一列与另一列具有一对多关系。在这种情况下,name(姓名)在某处属于school(学校)。 name 属于school,所以同一个元素可以在school 列中出现多次。在这种情况下,新泻大学出现了两次。
还有一种情况是你想处理所谓的类父实体(这里是school)。那样的话,如果有重复的话,可能会有点麻烦,所以我会介绍一种方法,从某列中提取不重复的值。
那是unique()。您可以通过将其指定为 pd.Series.unique() 从该列中获取不重复的列表。
print(df["school"].unique())
#['新潟大' '千葉大']
将其与 itterrows()、itertuples() 等结合使用,您可以只处理唯一值。
最后输出为 CSV
最后,输出编辑后的 CSV 文件并完成。
df.to_csv(path,index=False) #pathは自分の保存したい場所に指定してください。
我敢肯定还有其他编辑。首先,让我介绍一下我使用的东西。
参考文章
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308632800.html