मेरे पास एक CSV फ़ाइल है जिसमें निम्न पंक्तियाँ हैं:
"दिसंबर 30, 2021", "1,234.11", "1,654.22", "11,876.23", "1,676,234"
मैंने पिछली post से सीखा है जिसका मैं उपयोग कर सकता हूं:
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
0
M.E.
3 जिंदा 2022, 19:23
1
आपके कॉलम का नाम है या नहीं?
– Corralien
3 जिंदा 2022, 19:35
हाँ उनके नाम हैं
– M.E.
3 जिंदा 2022, 19:50
क्या इससे आपके सवाल का जवाब मिलता है? पंडा हजारों विभाजक के लिए अल्पविराम से सीएसवी डेटा स्वरूपित पढ़ रहे हैं ए>
– BigBen
3 जिंदा 2022, 20:03
2 जवाब
सबसे बढ़िया उत्तर
thousands
पैरामीटर का प्रयोग करें।
df = pd.read_csv("file.csv", parse_dates=['Date'], thousands=',')
3
Emma
3 जिंदा 2022, 19:35
यदि आपके पास विशेष प्रारूप है तो 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
0
Corralien
3 जिंदा 2022, 19:40
धन्यवाद, यह बहुत व्यापक है। मैंने
– thousands=
उत्तर चुना क्योंकि यह पांडा में अधिक मुहावरेदार/सरल लगता है।
M.E.
3 जिंदा 2022, 19:52