系統(tǒng):Windows 7
語言版本:Anaconda3-4.3.0.1-Windows-x86_64
編輯器:pycharm-community-2016.3.2
pandas:0.19.2
- 這個系列講講Python的科學計算版塊
- 今天講講pandas模塊:對列的每一個元素進行同樣的字符串操作
- 今天講其中的1個操作:split
Part 1:目標
- 已知Df某列都是字符串轨蛤,每一個字符串都有一個文件與其對應窿祥,需要對原文件名稱進行修改
- 存在以下規(guī)律:
- 原文件名格式P10-CD1.txt,只保留-前的文件名部分,新文件名P10.txt
- 實現(xiàn)方式:
- 獲取 - 前文件名
- 獲取 . 后的文件類型
- 組合兩者
- 加入到原來的Df中
修改前后文件名
Part 2:代碼
import pandas as pd
dict_1 = {"file_name": ["P10-CD1.txt", "P252-12EF.pdf", "P369-96BD.txt",
"P4-G852F.pdf", "P5-H225D.txt", "P657-36LF.pdf"],
"order_id": [1, 2, 3, 4, 5, 6]}
df_1 = pd.DataFrame(dict_1, columns=["file_name", "order_id"])
print("初始DF:\n", df_1)
print("\n")
df_2 = df_1["file_name"].str.split("-", expand=True)
df_2.columns = ["文件名", "其它"]
print("獲取新的文件名:\n", df_2)
print("\n")
df_3 = df_1["file_name"].str.split(".", expand=True)
df_3.columns = ["其它", "文件類型"]
print("獲取文件類型:\n", df_3)
print("\n")
se_1 = df_2["文件名"] + "." + df_3["文件類型"]
print("新的文件名:\n", se_1)
print(type(se_1))
print("\n")
df_1["new_file_name"] = se_1
print("加入新的文件名:\n", df_1)
print(type(df_1))
代碼截圖
執(zhí)行結(jié)果
Part 3:部分代碼解讀
-
df_2 = df_1["file_name"].str.split("-", expand=True)
,對列file_name的每個元素實行split("-")
操作,理論上生成一個列表菩颖,expand=True
表示將生成列表結(jié)果分為多個列 -
se_1 = df_2["文件名"] + "." + df_3["文件類型"]
,實現(xiàn)兩個Df之間對應每個元素的字符串連接操作为障,生成一個Series
對象 -
df_1["new_file_name"] = se_1
晦闰,df_1新增一列new_file_name
本文為原創(chuàng)作品,歡迎分享朋友圈
長按圖片識別二維碼鳍怨,關注本公眾號
Python 優(yōu)雅 帥氣