मैं पंडों के डेटा फ्रेम की अलग-अलग पंक्तियों के साथ काम कर रहा हूं, लेकिन पंक्तियों को अनुक्रमित और सम्मिलित करते समय मैं ज़बरदस्ती के मुद्दों पर ठोकर खा रहा हूं। लगता है कि पंडों को हमेशा एक मिश्रित इंट / फ्लोट से सभी-फ्लोट प्रकारों के लिए मजबूर करना पड़ता है, और मैं इस व्यवहार पर कोई स्पष्ट नियंत्रण नहीं देख सकता हूं।
उदाहरण के लिए, यहाँ के साथ एक सरल डेटा फ्रेम है a
के रूप में int
और b
के रूप में float
:
import pandas as pd
pd.__version__ # '0.25.2'
df = pd.DataFrame({'a': [1], 'b': [2.2]})
print(df)
# a b
# 0 1 2.2
print(df.dtypes)
# a int64
# b float64
# dtype: object
यहाँ एक पंक्ति को अनुक्रमित करते समय एक ज़बरदस्त मुद्दा है:
print(df.loc[0])
# a 1.0
# b 2.2
# Name: 0, dtype: float64
print(dict(df.loc[0]))
# {'a': 1.0, 'b': 2.2}
और यहाँ एक पंक्ति सम्मिलित करते समय एक ज़बरदस्त मुद्दा है:
df.loc[1] = {'a': 5, 'b': 4.4}
print(df)
# a b
# 0 1.0 2.2
# 1 5.0 4.4
print(df.dtypes)
# a float64
# b float64
# dtype: object
दोनों उदाहरणों में, मैं चाहता हूं कि a
स्तंभ एक पूर्णांक प्रकार के रूप में बना रहे, न कि एक फ्लोट प्रकार के लिए मजबूर होने के बजाय।
.read_[type]
हालांकि कई dtypes का समर्थन करता है ...
df.loc[[0], df.columns]