आपके प्रश्न में थोड़ी अस्पष्टता है। कम से कम तीन दो व्याख्याएँ हैं:
di
सूचकांक मूल्यों के संदर्भ में कुंजी
- मूल्यों के
di
संदर्भ में चाबियाँdf['col1']
di
सूचकांक स्थानों के संदर्भ में कुंजियाँ (ओपी का सवाल नहीं है, लेकिन मज़े के लिए फेंक दिया गया है।)
नीचे प्रत्येक मामले के लिए एक समाधान है।
केस 1:
यदि di
इंडेक्स वैल्यू को संदर्भित करने के लिए कुंजियों का उपयोग किया जाता है, तो आप update
विधि का उपयोग कर सकते हैं :
df['col1'].update(pd.Series(di))
उदाहरण के लिए,
import pandas as pd
import numpy as np
df = pd.DataFrame({'col1':['w', 10, 20],
'col2': ['a', 30, np.nan]},
index=[1,2,0])
# col1 col2
# 1 w a
# 2 10 30
# 0 20 NaN
di = {0: "A", 2: "B"}
# The value at the 0-index is mapped to 'A', the value at the 2-index is mapped to 'B'
df['col1'].update(pd.Series(di))
print(df)
पैदावार
col1 col2
1 w a
2 B 30
0 A NaN
मैंने आपके मूल पोस्ट से मानों को संशोधित किया है इसलिए यह स्पष्ट है कि क्या update
कर रहा है। ध्यान दें कि di
इंडेक्स मानों के साथ कुंजियाँ किस प्रकार जुड़ी हुई हैं। सूचकांक मानों का क्रम - यानी सूचकांक स्थान - कोई फर्क नहीं पड़ता।
केस 2:
यदि मानों के di
संदर्भ में कुंजियाँ df['col1']
हैं, तो @DanAllan और @DSM यह दर्शाते हैं कि इसे कैसे प्राप्त किया जाए replace
:
import pandas as pd
import numpy as np
df = pd.DataFrame({'col1':['w', 10, 20],
'col2': ['a', 30, np.nan]},
index=[1,2,0])
print(df)
# col1 col2
# 1 w a
# 2 10 30
# 0 20 NaN
di = {10: "A", 20: "B"}
# The values 10 and 20 are replaced by 'A' and 'B'
df['col1'].replace(di, inplace=True)
print(df)
पैदावार
col1 col2
1 w a
2 A 30
0 B NaN
ध्यान दें कि इस मामले में कुंजी di
को मूल्यों में मिलान करने के लिए कैसे बदला गया था df['col1']
।
केस 3:
यदि di
इंडेक्स स्थानों के संदर्भ में कुंजी है , तो आप उपयोग कर सकते हैं
df['col1'].put(di.keys(), di.values())
जबसे
df = pd.DataFrame({'col1':['w', 10, 20],
'col2': ['a', 30, np.nan]},
index=[1,2,0])
di = {0: "A", 2: "B"}
# The values at the 0 and 2 index locations are replaced by 'A' and 'B'
df['col1'].put(di.keys(), di.values())
print(df)
पैदावार
col1 col2
1 A a
2 10 30
0 B NaN
यहां, पहली और तीसरी पंक्तियों को बदल दिया गया था, क्योंकि चाबियाँ di
हैं 0
और 2
, जो पायथन के 0-आधारित अनुक्रमण के साथ पहले और तीसरे स्थानों को संदर्भित करती हैं।
col```` is tuple. The error info is
टाइप नहीं कर सकता 'ndarray (dtype = object)' और 'tuple'```