निम्नलिखित धीमी गति से दृष्टिकोण का समय समाप्त हो रहा है यहाँ , लेकिन हम एक से अधिक स्तंभ की सामग्री के आधार पर अतिरिक्त स्तंभ की गणना कर सकते हैं और अधिक से अधिक दो मानों अतिरिक्त स्तंभ के लिए गणना की जा सकती।
केवल "सेट" कॉलम का उपयोग करके सरल उदाहरण:
def set_color(row):
if row["Set"] == "Z":
return "red"
else:
return "green"
df = df.assign(color=df.apply(set_color, axis=1))
print(df)
Set Type color
0 Z A red
1 Z B red
2 X B green
3 Y C green
अधिक रंग और अधिक स्तंभों को ध्यान में रखते हुए उदाहरण:
def set_color(row):
if row["Set"] == "Z":
return "red"
elif row["Type"] == "C":
return "blue"
else:
return "green"
df = df.assign(color=df.apply(set_color, axis=1))
print(df)
Set Type color
0 Z A red
1 Z B red
2 X B green
3 Y C blue
संपादित करें (21/06/2019): प्लाईडेटा का उपयोग करना
इस तरह की चीजों को करने के लिए प्लाईडेटा का उपयोग करना भी संभव है (यह उपयोग करने की तुलना में धीमा भी लगता है assign
और apply
, हालांकि)।
from plydata import define, if_else
सरल if_else
:
df = define(df, color=if_else('Set=="Z"', '"red"', '"green"'))
print(df)
Set Type color
0 Z A red
1 Z B red
2 X B green
3 Y C green
नेस्टेड if_else
:
df = define(df, color=if_else(
'Set=="Z"',
'"red"',
if_else('Type=="C"', '"green"', '"blue"')))
print(df)
Set Type color
0 Z A red
1 Z B red
2 X B blue
3 Y C green