1
다음과 같이 항목 번호 목록이 있습니다.파이썬의 값을 기반으로 csv 파일에서 열을 선택하십시오.
item_numbers = [1,2,5]
또한 item_numbers의 구성 요소가 포함 된 csv 파일이 있습니다. 값이 0보다 큰 (값 == 0, 내가 그 재료가 필요하지 않은 경우)
E.g., item 1 in 'item_numbers' list -> [{'salt': 0.2}, {'oil': 0.8}]
입니다
,sugar, protein, salt, oil
0, 0.2, 0.3, 0, 0
1, 0, 0, 0.2, 0.8
2, 0.4, 0, 0, 0
지금, 내 목록의 항목에 대한 성분을 얻으려면 현재 코드는 다음과 같습니다.
df = pd.read_csv(ingredients, sep = ',')
df = df.iloc[:,1:]
df = df.loc[item_numbers].dropna(how='all').gt(0).apply(lambda x: x.index[x].tolist(), 1)
ingredients = df.values.tolist()
print(ingredients)
도와주세요.
많은 감사합니다. 그러나, 나는 0.8 대신에 0.80000000000000004를 얻는다. 그것을 고치는 방법을 알고 있습니까? –
흠, 이것은 실제'float's입니다. [this] (https://stackoverflow.com/a/39901954/2901002)를 참조하십시오. 다음 공정의 출력에 문제가 있습니까? – jezrael
감사! 예, 저는 실제로 진정한 가치를 원합니다. 그러나 내 수레는 소수점 이하 3 자리까지만 가질 수 있습니다 (예 : 0.333). 따라서 소수점 3 자리까지 반올림하면 해결 될까요? –