Merci pour votre temps.
J'écris du code qui vérifie la corrélation entre plusieurs ensembles de données. Cela fonctionne bien lorsque j'utilise les données d'origine (ce que je suis honnêtement incertain de quel format il se trouve à ce point), mais après avoir exécuté les données à l'aide de certaines équations à l'aide du module décimal, l'ensemble de données ne s'affichera pas lorsqu'il est testé. Pour la corrélation. P>
Je me sens vraiment stupide et nouveau lol, je suis sûr que c'est une solution très facile. P>
Voici un petit programme que j'ai écrit pour démontrer ce que je veux dire. P > Les données des deux listes A et B ainsi que H & F sont exactement identiques, la seule différence d'A & B étant des nombres décimaux formés, où sont les suivants: H & F. non. p> Lorsque le programme est exécuté, A & B Retourne: P> H J
H 1.000000 0.995657
J 0.995657 1.000000
3 Réponses :
Pandas n'a pas de support particulier pour le type décimal, il traite donc de type "objet". Cela signifie que des méthodes telles que Pour la plupart des opérations numériques dans Numpy / Pandas, vous devrez convertir vos données en flotteurs. P> .corr code> qui ne fonctionnent que sur des colonnes numériques ne considéreront pas les colonnes décimales à valoriser. De nombreuses fonctions numpues et scieuses ne fonctionneront pas non plus correctement sur des décimales, car les objets décimaux ne peuvent pas être combinés avec des flotteurs ordinaires dans des opérations mathématiques. (Il ressemble à
scipy.stats.pearsonr code> ne fonctionne pas, mais
scipy.stats.spearmanr code> fait.) P>
Pandas ne reconnaît pas les données sous forme de valeurs numériques. Voici comment convertir vos données en float.
pd.to_numeric(corr_data1['A'], errors='coerce') # 0 NaN # 1 NaN # 2 NaN # 3 NaN # 4 NaN # 5 NaN
En plus des autres réponses fines décrivant la manière dont vous aurez besoin de valeurs de point flottant pour la corrélation, votre stratégie de saisie de décimal code> est mal cassée.
[Decimal('2.3'),
Decimal('1.5'),
Decimal('5.7'),
Decimal('4.6'),
Decimal('5.5'),
Decimal('1.5')]
En réalité, sur toutes les premières questions posées par les utilisateurs que j'ai examinés, vous avez l'une des meilleures écrites, avec le plus d'exemple de code. Accessoires pour une question bien commune.
Je ne pense pas que les numéros ou les pandas soutient le type décimal en tant que tel. Pandas traite votre tableau comme une éventail d'objets. Si vous voulez que Pandas les traite comme des chiffres, je pense que vous aurez besoin de convertir en float.
Votre liste de
décimal code> Des objets seront transformés en un objet
objet code> dtype
dataframe code> ou
numpy code> tableau.
cor_data1.dtypes code>. Certaines opérations de mathématiques fonctionnent sur la matrice d'objet, mais il est frappé et mademoiselle.
Cor CODE> est l'une de ces victimes.
cor.data1._get_numeric_data () code> vient vide.