pandas 0.23 - DataFrame.update()

pandas.DataFrame.update




pandas

pandas.DataFrame.update

DataFrame.update(other, join='left', overwrite=True, filter_func=None, raise_conflict=False) [source]

किसी अन्य DataFrame से गैर-NA मानों का उपयोग करके संशोधित करें।

सूचकांकों पर संरेखित करता है। कोई रिटर्न वैल्यू नहीं है।

पैरामीटर:

अन्य : DataFrame, या DataFrame में ऑब्जेक्ट को एक साथ ले जाना

मूल DataFrame के साथ कम से कम एक मिलान सूचकांक / स्तंभ लेबल होना चाहिए। यदि कोई श्रृंखला पास की जाती है, तो उसका नाम विशेषता सेट किया जाना चाहिए, और इसका उपयोग मूल डेटाफ़्रेम के साथ संरेखित करने के लिए स्तंभ नाम के रूप में किया जाएगा।

शामिल हों : {'लेफ्ट'}, डिफॉल्ट 'लेफ्ट'

मूल ऑब्जेक्ट के सूचकांक और स्तंभों को ध्यान में रखते हुए केवल बाएं जोड़ को लागू किया जाता है।

ओवरराइट : बूल, डिफ़ॉल्ट सही

ओवरलैपिंग कुंजी के लिए गैर-एनए मानों को कैसे संभालें:

  • सच: मूल DataFrame के मूल्यों को other से मानों के साथ अधिलेखित करें।
  • गलत: केवल अद्यतन मान जो मूल DataFrame में NA हैं।

filter_func : callable (1d-array) -> बूलियन 1d-array, वैकल्पिक

एनए के अलावा अन्य मूल्यों को बदलने के लिए चुन सकते हैं। उन मानों के लिए सही लौटें जिन्हें अपडेट किया जाना चाहिए।

raise_conflict : बूल, डिफ़ॉल्ट गलत

यदि सही है, तो ValueFrror बढ़ाएगा यदि DataFrame और other दोनों में एक ही स्थान पर गैर-NA डेटा हो।

जन्म देती है:

ValueError

जब raise_conflict True है और गैर-NA डेटा को ओवरलैप कर रहा है।

यह भी देखें

dict.update
शब्दकोश के लिए इसी तरह की विधि।
DataFrame.merge
कॉलम (एस) -ऑन-कॉलम (एस) के संचालन के लिए।

उदाहरण

>>> df = pd.DataFrame({'A': [1, 2, 3],
...                    'B': [400, 500, 600]})
>>> new_df = pd.DataFrame({'B': [4, 5, 6],
...                        'C': [7, 8, 9]})
>>> df.update(new_df)
>>> df
   A  B
0  1  4
1  2  5
2  3  6

अपडेट के परिणामस्वरूप DataFrame की लंबाई नहीं बढ़ती है, केवल मिलान सूचकांक / स्तंभ लेबल पर मान अपडेट किए जाते हैं।

>>> df = pd.DataFrame({'A': ['a', 'b', 'c'],
...                    'B': ['x', 'y', 'z']})
>>> new_df = pd.DataFrame({'B': ['d', 'e', 'f', 'g', 'h', 'i']})
>>> df.update(new_df)
>>> df
   A  B
0  a  d
1  b  e
2  c  f

श्रृंखला के लिए, यह नाम विशेषता सेट होना चाहिए।

>>> df = pd.DataFrame({'A': ['a', 'b', 'c'],
...                    'B': ['x', 'y', 'z']})
>>> new_column = pd.Series(['d', 'e'], name='B', index=[0, 2])
>>> df.update(new_column)
>>> df
   A  B
0  a  d
1  b  y
2  c  e
>>> df = pd.DataFrame({'A': ['a', 'b', 'c'],
...                    'B': ['x', 'y', 'z']})
>>> new_df = pd.DataFrame({'B': ['d', 'e']}, index=[1, 2])
>>> df.update(new_df)
>>> df
   A  B
0  a  x
1  b  d
2  c  e

यदि other में NaN समाहित है, तो मूल डेटाफ़्रेम में संबंधित मान अपडेट नहीं किए जाते हैं।

>>> df = pd.DataFrame({'A': [1, 2, 3],
...                    'B': [400, 500, 600]})
>>> new_df = pd.DataFrame({'B': [4, np.nan, 6]})
>>> df.update(new_df)
>>> df
   A      B
0  1    4.0
1  2  500.0
2  3    6.0