我正在尝试使用pandas库,这是我为了学习新事物而想出的代码。
#scratch.py
import pandas as pd
df=pd.read_excel (r'C:\Users\Hussain\Desktop\Returns.xlsx', header= 0, encoding='utf', sep= '|')
pd.set_option('display.max_rows', 50)
pd.set_option('display.max_columns', 50)
pd.set_option('display.width', 1000)
df.rename(columns={'Period Invested for': 'Investment Period', '₹10000 Invested on': 'Investment Date', 'Latest Value' : 'Current Value'}, inplace=True)
print(df)
$ python scratch.py
Investment Period Investment Date Current Value ...
0 2019-05-16 00:00:00 10427.4 ...
1 2019-04-23 00:00:00 10127.5 ...
2 2019-02-22 00:00:00 11029.6 ...
...
xlsx文件中的示例行:
3 Year,23-May-16,16633.59,66.34%,18.48%,13.52%,Jan-35
有人可以帮我知道为什么第二列(投资日期)中包含24小时格式的时间,而我正在研究的Excel没有提及时间吗?
答案 0 :(得分:0)
Pandas确实将该列识别为“日期时间”格式。您可以在此处阅读有关该主题的更多信息: https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html
可以从日期时间格式中获取日期,例如:
export default (state = {}, action) => {
switch (action.type) {
case 'COMP_MOUNT':
return
case 'ADD_DUEDATE':
return { ...state, [action.payload.id]: action.payload }
case 'ADD_DEEP_ITEM':
return {
...state,
[action.payload.dueDateId]: {
...state[action.payload.dueDateId],
goals: state[action.payload.dueDateId].goals.concat(action.payload)
}
}
case 'DELETE_DEEP_ITEM':
// console.log(`action.length ${action}`)
return {
...state,
[action.payload.keyName]: {
...state[action.payload.keyName],
goals: [
...state[action.payload.keyName].goals.slice(0, action.payload.index),
...state[action.payload.keyName].goals.slice(action.payload.index + 1)
]
}
}
case 'EDIT_DEEP_ITEM':
console.log(action)
console.log(`state${state}`)
const keyName = action.payload.keyName
const goal = action.payload.goal
const goals = [...state[keyName].goals];
goals.splice(action.payload.index, 1, goal);
return {
...state,
[keyName]: {
...state[keyName],
goals,
}
};
default:
return state;
}
}
答案 1 :(得分:0)
Pandas
倾向于将datetime
用于日期列而不是date
,这很好,因为在许多情况下,您可能需要在计算中“混合”日期和日期时间,因此更容易到处都有日期时间,然后允许日期有不同的行为(例如:“日期”应解释为像00:00:00
这样的固定点,还是应该在00:00:00
到23:59:59.999999
的范围内。 ..,如果您使用可识别时区的日期时间,并尝试将它们与DST转换日期上的“日期”进行比较,则可能还会出现一些问题。
但是您可以将任何列转换为所需的任何类型:
# A. convert value type as suggested in other answer: https://stackoverflow.com/a/56300512/952437
df['Investment Date'] = df['Investment Date'].dt.date
# B. Only change output style:
import datetime
def dt_as_date(val):
if isinstance(val, (pd.Timestamp, datetime.datetime)):
return str(val.date())
return val
df.style.format({'Investment Date': dt_as_date})