我有一個包含以下行的 CSV 檔案:
“2021 年 12 月 30 日”、“1,234.11”、“1,654.22”、“11,876.23”、“1,676,234”
我從以前的帖子中了解到可以使用:
parse_dates=['Date']
獲取決議的日期(有效)。但是我希望第 2-4 列作為 np.float64,第 5 列作為 int64。我怎樣才能做到這一點?
我試過這個:
data = pd.read_csv("file.csv", parse_dates=['Date'], dtype=[np.datetime64, np.float64, np.float64, np.float64, np.float64, np.int64])
但我明白了
TypeError: data type not understood
uj5u.com熱心網友回復:
使用thousands引數。
df = pd.read_csv("file.csv", parse_dates=['Date'], thousands=',')
uj5u.com熱心網友回復:
converters如果您有特殊格式,請使用引數。
converters = {
'Date': lambda x: datetime.strptime(x, "%b %d, %Y"),
'Number': lambda x: float(x.replace(',', ''))
}
df = pd.read_csv('data.csv', converters=converters)
輸出:
>>> df
Date Number
0 2021-12-30 2345.55
>>> df.dtypes
Date datetime64[ns]
Number float64
dtype: object
# data.csv
Date,Number
"Dec 30, 2021","2,345.55"
否則使用標準引數:
df = pd.read_csv("data.csv", header=None, parse_dates=[0], thousands=',', quoting=1)
輸出:
>>> df
0 1 2 3 4
0 2021-12-30 1234.11 1654.22 11876.23 1676234
>>> df.dtypes
0 datetime64[ns]
1 float64
2 float64
3 float64
4 int64
dtype: object
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/402817.html
標籤:
