द्वारा सामान्यीकृत करें मेरे पास स्पेक्ट्रल डेटा और मेटाडेटा युक्त एक पांडा डेटाफ्रेम है। कॉलम को मल्टीइंडेक्स के साथ लेबल किया गया है ताकि df['wvl']
स्पेक्ट्रा और df['meta']
मेटाडेटा देता है। df['wvl']
के भीतर कॉलम लेबल स्पेक्ट्रोमीटर चैनलों के तरंगदैर्ध्य मान हैं।पांडा डेटा फ्रेम की पंक्तियों को उनके रकम
मैं जो करना चाहता हूं वह उस पंक्ति के योग से df['wvl']
की प्रत्येक पंक्ति को सामान्यीकृत करना है ताकि पंक्ति में मान जोड़ने से कुल 1.0 हो।
यहाँ dataframe में से एक पंक्ति की तरह दिखता है:
df['wvl'].iloc[0]
246.050003 128.533035
246.102005 102.756321
246.156006 99.930775
...
848.697205 121.313347
848.896423 127.011662
849.095703 123.234168
Name: 0, dtype: float64
लेकिन जब मैं की तरह कुछ कार्य करें:
df['wvl'].iloc[0]=df['wvl'].iloc[0]/df['wvl'].iloc[0].sum()
कुछ नहीं होता!
df['wvl'].iloc[0]
246.050003 128.533035
246.102005 102.756321
246.156006 99.930775
...
848.697205 121.313347
848.896423 127.011662
849.095703 123.234168
Name: 0, dtype: float64
अगर मैं एक अस्थायी चर बनाने पंक्ति धारण करने के लिए, मैं सिर्फ ठीक सामान्यीकरण कर सकते हैं::
temp=df['wvl'].iloc[0]
temp=temp/temp.sum()
temp
246.050003 0.000027
246.102005 0.000022
246.156006 0.000021
...
848.697205 0.000026
848.896423 0.000027
849.095703 0.000026
Name: 0, dtype: float64
लेकिन अगर मैं साथ dataframe पंक्ति को बदलने के लिए कोशिश मैं ठीक उसी मूल्यों को प्राप्त सामान्यीकृत अस्थायी चर, कुछ नहीं होता:
df['wvl'].iloc[0]=temp
df['wvl'].iloc[0]
246.050003 128.533035
246.102005 102.756321
246.156006 99.930775
...
848.697205 121.313347
848.896423 127.011662
849.095703 123.234168
Name: 0, dtype: float64
मैं स्पष्ट रूप से यहाँ कुछ याद कर रहा हूँ, लेकिन मैं समझ नहीं क्या और यह मेरे पागल गाड़ी चला रहा है। मदद? अग्रिम में धन्यवाद!
[पंक्ति से एक पांडा DataFrame सामान्य] (https://stackoverflow.com/questions/18594469/normalizing-a-pandas-dataframe-by-row) की संभावित डुप्लिकेट –