[英]Rename hundred or more column names in pandas dataframe
我正在使用供個人使用的 John Hopkins Covid 數據來創建圖表。 數據按國家/地區顯示累計死亡人數,我想要每天的死亡人數。 在我看來,最簡單的方法是創建兩個數據框並從另一個中減去一個。 但是該文件將列名作為日期和代碼,例如 df3 = df2 - df1 減去具有匹配日期的列。 所以我想用一些簡單的索引重命名所有列,例如,1、2、3,...。
我不知道該怎么做?
new_names=list(range(data.shape[1]))
data.columns=new_names
這會將數據列從 0 向上重命名。
您可以重新塑造數據:使用日期和行標簽,並使用國家、省作為列標簽。
import pandas as pd
covid_csv = 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv'
df_raw = (pd.read_csv(covid_csv)
.set_index(['Country/Region', 'Province/State'])
.drop(columns=['Lat', 'Long'])
.transpose())
df_raw.index = pd.to_datetime(df_raw.index)
print( df_raw.iloc[-5:, 0:5] )
Country/Region Afghanistan Albania Algeria Andorra Angola
Province/State NaN NaN NaN NaN NaN
2020-07-27 1269 144 1163 52 41
2020-07-28 1270 148 1174 52 47
2020-07-29 1271 150 1186 52 48
2020-07-30 1271 154 1200 52 51
2020-07-31 1272 157 1210 52 52
現在,您可以使用豐富的 pandas 工具集進行時間序列分析。 例如,使用diff()
到 go 從累積死亡到每日率。 或者,您可以計算 N 天移動平均線,創建時間序列圖,...
print(df_raw.diff().iloc[-5:, 0:5])
Country/Region Afghanistan Albania Algeria Andorra Angola
Province/State NaN NaN NaN NaN NaN
2020-07-27 10.0 6.0 8.0 0.0 1.0
2020-07-28 1.0 4.0 11.0 0.0 6.0
2020-07-29 1.0 2.0 12.0 0.0 1.0
2020-07-30 0.0 4.0 14.0 0.0 3.0
2020-07-31 1.0 3.0 10.0 0.0 1.0
最后, df_raw.sum(level='Country/Region', axis=1)
將聚合一個國家內的所有省份。
感謝您的時間和精力,但我想出了一個簡單的方法。
對於我,枚舉中的行(df):df.rename(列= {行:str(i)},就地=真)
更改列名,然后
對於我,枚舉中的行(df):df.rename(列= {行:str(i + 43853)},就地=真)
將它們改回我想要的日期。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.