Robiłem program w Pythonie 2, który pomaga mi dodawać wszystkie elementy, które należą do mojej listy wyników, ale miałem problem z tą listą, jest tak, że na mojej wynikowej liście są wartości, które nie są liczbami, takimi jak "nazwa „i„ dtype ”według tego, czego nie mogę dodać. W tym wierszu kodu "d = df [df ['radio'] == i] ['ParWeight']" program ratuje wartość "wagi" cząstki, która znajduje się w promieniu mniejszym niż Radio włożone. Każda cząstka odpowiada promieniu i jej wadze

import pandas as pd
#Define the data list
weight=[]
data=pd.read_csv('muons.txt',header=0,delim_whitespace=True)
df=pd.DataFrame(data)
#Insert the radio values
R=input('Insert the Radio: ')
for i in df['radio']:
    if i<R:
        d=df[df['radio']==i]['ParWeight']
        weight.append(d) 
print(weight)
[7    2.88072
Name: ParWeight, dtype: float64, 40    5.45978
Name: ParWeight, dtype: float64]
0
Bryan Ortiz 19 grudzień 2019, 00:22
Co chcesz robić? wyślij df.head(), abyśmy mogli zrozumieć, co chcesz zrobić
 – 
Mohsen_Fatemi
19 grudzień 2019, 00:47
Witamy w przepełnieniu stosu! Powodem, dla którego otrzymujesz informacje o nazwie i typie, jest to, że dołączasz pandas.series do swojej listy weight. Czy to właśnie zamierzasz zrobić? A może próbujesz tylko dodać wartość?
 – 
G. Anderson
19 grudzień 2019, 00:48
Zastosowane podejście nie jest wydajne, spróbuj to zrobić za pomocą metody apply i lambdas
 – 
Mohsen_Fatemi
19 grudzień 2019, 00:51
Przepraszam, chcę znaleźć wszystkie wartości „wagi” dla każdej cząstki, która mieści się w promieniu, który wstawiłem do kodu
 – 
Bryan Ortiz
19 grudzień 2019, 00:53

1 odpowiedź

d=df[df['radio']==i]['ParWeight'].iloc[0]
weight.append(d)
print(weight)

Iloc POWINIEN być w stanie wyodrębnić tutaj wartość ciągu. Nie mogłem przetestować, ponieważ nie mam dostępnego df.

0
SublimizeD 19 grudzień 2019, 00:58