我的專欄是
id_no| 2021-05-19 00:00:00 | 2021-05-20 00:00:00 | decider
100 20 20 878
200 64 38 917
這里 idno 是索引,其余的是我想要輸出的列
id_no| 2021-05-19 | 2021-05-20 | decider
100 20 20 878
200 64 38 917
我嘗試轉換列名,但只是列名沒有改變,列名是日期時間格式,除了人口列。我試過下面的代碼
for (columnName, columnData) in df.iteritems():
columnName = pd.to_datetime(columnName)
uj5u.com熱心網友回復:
str當其他列長度不大于10時我們可以嘗試切片
df.columns = df.columns.astype(str).str[:10]
df
Out[356]:
id_no 2021-05-19 2021-05-20 decider
0 100 20 20 878
1 200 64 38 917
uj5u.com熱心網友回復:
更改回圈變數只會更改...回圈變數,而不是列名!您必須創建一個表示新列名的字串串列,并將其設為新列索引:
new_columns = [df.columns[0]] \
pd.to_datetime(df.columns[1:-1]).astype(str).tolist() \
[df.columns[-1]]
df.columns = new_columns
uj5u.com熱心網友回復:
您可以將名稱串列分配給 df 的 columns 屬性。
data = {'id_no': {0: 100, 1: 200},
'2021-05-19 00:00:00': {0: 20, 1: 64},
'2021-05-20 00:00:00': {0: 20, 1: 38},
'decider': {0: 878, 1: 917}}
df = pd.DataFrame(data)
df.columns = ['id_no', '2021-05-19', '2021-05-20', 'decider'] # simple solution
# edit, you can use a list comprehension with conditional
df.columns = [str(x)[0:10] if x[0] == '2' else x for x in df.columns]
輸出:
id_no 2021-05-19 2021-05-20 decider
0 100 20 20 878
1 200 64 38 917
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/433573.html
標籤:python-3.x 熊猫 数据框 约会时间
上一篇:Python修剪資料框的多列名稱
下一篇:根據比較規則更改列值
