मेरे पास डेटाफेम है: -

    symbol  date    net_revenue gross_profit    net_income_common   total_asset
0   XLNX    30/9/2020   766535000   541719000   193816000   5575931000
1   CDSN    30/6/2020   726673000   493873000   93836000    5444763000
2   SNPS    31/3/2020   756169000   528435100   162257000   4693334000
3   KEYS    31/12/2019  723499000   483478000   162012000   4951222000
4   ANSS    30/9/2019   833366000   540260000   226993000   5019898000

मैं आमतौर पर प्रत्येक पंक्ति के लिए ये स्क्रिप्ट चलाता हूं:

cdns = df[df['symbol'] == 'CDNS']
snps = df[df['symbol'] == 'SNPS']
keys = df[df['symbol'] == 'KEYS']
anss = df[df['symbol'] == 'ANSS']
xlnx = df[df['symbol'] == 'XLNX']

xlnx[['net_revenue','net_income_common', 'gross_profit', 'total_asset']] /= 1000
xlnx['date'] = pd.to_datetime(tick['date'])
xlnx.sort_values(['date'], ascending = True, inplace = True)
xlnx.set_index('date', inplace=True)

snps[['net_revenue','net_income_common', 'gross_profit', 'total_asset']] /= 1000
snps['date'] = pd.to_datetime(snps['date'])
snps.sort_values(['date'], ascending = True, inplace = True)
snps.set_index('date', inplace=True)

मैं इन स्क्रिप्ट को चलाने के लिए फ़ंक्शन और लूप विधि के लिए उपयोग करना चाहता हूं लेकिन यह एक TypeError देता है: सूची सूचकांक पूर्णांक या स्लाइस होना चाहिए, सूची नहीं। क्या मैं जान सकता हूँ कि समस्या क्यों है?

def multi(tick):
   tick[['net_revenue','net_income_common', 'gross_profit', 'total_asset']] /= 1000
   tick['date'] = pd.to_datetime(tick['date'])
   tick.sort_values(['date'], ascending = True, inplace = True)
   tick.set_index('date', inplace=True)
   return tick

list_ = ['xlnx','cdsn', 'snps', 'keys', 'anss']
for s in list_:
    ouput = multi(s)
0
janicewww 15 नवम्बर 2020, 18:46

1 उत्तर

सबसे बढ़िया उत्तर

आप स्ट्रिंग्स की एक सूची भेज रहे हैं, मुझे लगता है कि आप इस तरह डेटाफ्रेम की एक सूची भेजना चाहते हैं:

cdns = df[df['symbol'] == 'CDNS']
snps = df[df['symbol'] == 'SNPS']
keys = df[df['symbol'] == 'KEYS']
anss = df[df['symbol'] == 'ANSS']
xlnx = df[df['symbol'] == 'XLNX']

list_ = [xlnx, cdsn, snps, keys, anss]
for s in list_:
    ouput = multi(s)
1
JeffUK 15 नवम्बर 2020, 15:57