就把MonitorMonth讀出來,把前四個字元跟後兩個字元分開,分別存入新欄位就好。
重點是你是怎麼儲存這個表格的,EXCEL?Panda dataframe?database?
給你一個讀起來應該滿輕鬆的程式碼,你可以再依照想法去修改
import pandas as pd
a = {"MonitorMonth":["202110","123412","113007"]}
data3 = pd.DataFrame(a)
temp = data3["MonitorMonth"] #讀出該欄位
data4 = pd.DataFrame({"year":[],"month":[]})
#新的dataframe,當然如果你直接新增在舊dataframe處理其實更方便
for i in temp:
data4.loc[len(data4.index)] = [i[:-2],i[-2:]]
ans = pd.concat([data3,data4],axis=1)#合併
print(ans)
# MonitorMonth year month
#0 202110 2021 10
#1 123412 1234 12
#2 113007 1130 07
ans = ans.drop(["MonitorMonth"],axis=1)#刪除掉不需要的資料
print(ans)
# year month
#0 2021 10
#1 1234 12
#2 1130 07
不過我平常會這樣寫啦,簡單很多,不過要看你會不會lambda
import pandas as pd
a = {"MonitorMonth":["202110","123412","113007"]}
data3 = pd.DataFrame(a)
data3['year'] = data3["MonitorMonth"].apply(lambda x:x[:-2])
data3['month'] = data3["MonitorMonth"].apply(lambda x:x[-2:])
data3 = data3.drop(["MonitorMonth"],axis=1)#刪除掉不需要的資料
print(data3)
是Panda dataframe,不過單把MonitorMonth讀出來之後不知道該怎麼把前四個字元跟後兩個字元分開
程式碼目前是輸這樣
a=csv.iloc[:,[6]]
blacksar111 喔~
晚點示範給你看
blacksar111 參考看看吧
tryit[https://ithelp.ithome.com.tw/upload/images/20221202/20153867hdECc4fsnh.jpg]
我試著帶入之後結果顯示這樣@@
blacksar111上面有寫啊,typeerror,你日期是用數字儲存的吧,先用str()轉成文字再切割,切完再轉成數字就好
blacksar111
data3['year'] = data3["MonitorMonth"].apply(lambda x:int(str(x)[:-2]))
下一行以此類推
tryit喔喔,原來如此,那我想再問看看如果想以SiteName測站與ItemName、月為單位計算每月污染物平均值的話該怎麼寫
想得到的結果長這樣
https://ithelp.ithome.com.tw/upload/images/20221203/20153867ACzJhJDB3W.jpg
目前是寫這樣,不知道該如何修改
https://ithelp.ithome.com.tw/upload/images/20221203/20153867qi1HmZPGUb.jpg
blacksar111誒,你要不要分成下一題問,要不然會有點亂
tryit
喔喔好的,我另外po了一篇https://ithelp.ithome.com.tw/questions/10211174
那這邊我就先選為最佳解答了
查到一種做法可以用 str
來切,就紀錄一下
import pandas as pd
df = pd.DataFrame(
{
"name":["202201", "202202"]
}
)
df["year"] = df["name"].str[:-2]
df["month"] = df["name"].str[-2:]
print(df)
name year month
0 202201 2022 01
1 202202 2022 02