मेरे पास दो कॉलम के साथ एक पांडा डेटाफ्रेम है: x और value। मैं उन सभी पंक्तियों को ढूंढना चाहता हूं जहां x == 10, और इन सभी पंक्तियों के लिए मूल्य = 1,000 सेट करें। मैं नीचे दिए गए कोड की कोशिश की, लेकिन मैं चेतावनी है किपायथन पांडा: जंजीर असाइनमेंट से बचने के लिए कैसे करें
A value is trying to be set on a copy of a slice from a DataFrame.
मैं समझता हूँ कि मैं .loc या .ix का उपयोग करके इस से बच सकते हैं मिलता है, लेकिन मैं पहले स्थान या सभी पंक्तियों जो पूरा का सूचकांक खोजने की आवश्यकता होगी एक्स == 10 की मेरी हालत। क्या कोई और सीधा तरीका है?
धन्यवाद!
import numpy as np
import pandas as pd
df=pd.DataFrame()
df['x']=np.arange(10,14)
df['value']=np.arange(200,204)
print df
df[ df['x']== 10 ]['value'] = 1000 # this doesn't work
print df
क्षमा करें 'df.loc [df [' x '] == 10,' value '] = 1000' का उपयोग करने में क्या गलत है? – EdChum
धन्यवाद, मुझे एहसास नहीं हुआ कि यह एक विकल्प था। शायद यह सिर्फ मुझे है, शायद ऐसा इसलिए है क्योंकि मैं भी एसक्यूएल के लिए उपयोग किया जाता हूं और पांडों के लिए बहुत नया हूं, लेकिन मुझे अभी भी पता चलता है कि कुछ कार्यों जो एसक्यूएल में हैं, पांडा में गन्दा हैं, और दस्तावेज बहुत स्पष्ट नहीं है –
[डॉक्स] (http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy) बहुत स्पष्ट हैं और चेतावनी आपको यह बताने के लिए है कि आप जो कर रहे हैं वह काम नहीं कर सकता – EdChum