csv 행 파이썬에 함수를 적용 할 때 Pandas가 두 번 반복됩니다.

M. 울프

"IP 주소"라는 열이있는 csv 문서와 그 안에 임의의 데이터가있는 세 개의 다른 열이 있습니다. 내 목표는 IP 주소 열을 반복하고 각 IP 주소에서 bulkfunc를 실행하여 내용을 텍스트 파일로 출력하는 것입니다.

데이터에 올바르게 액세스하는 팬더가 있지만 어떤 이유로 두 번 반복되므로 CSV에 3 개의 IP 주소가 있으므로 6 개의 출력 파일을 얻습니다.

def bulkcsv():
  df = pd.read_csv(('csvfiles/' + inputfile), dtype=str, usecols=['IP Address'])
  #for row in df:
  df.applymap(bulkfunc)

내 bulkfunc 함수는 다음과 같습니다.

def bulkfunc(x):
  global f
  global ip
  ip = x
  f = open('results/%s' % ip + "_" + datetime.now().strftime("%Y-%m-%d@%H%M") + '.txt', 'a')
  print "Static Information: "
  f.write("Static Information: ")
  print "-" * 30
  f.write("-" * 30)
  parsenetworkcsv(ip)
  ping(ip)
  nmaprun(ip, "-sV")
  print "The output is complete."
  f.write("-" * 30)
  f.write("created by OP")
  f.close()

csv는 다음과 같습니다.

IP Address  random crap   hiya    intwer
10.90.11.252    dawd4     4654    14512
10.90.11.253    144         0
10.90.11.254    203 
Pmaniyan

이것을 시도하면 문제가 해결됩니다.

import pandas as pd
import time
from datetime import datetime

def bulkcsv():
  inputfile = 'inp.csv'
  df = pd.read_csv(('csvfiles/' + inputfile), dtype=str, usecols=['IP Address'])
  #print df
  #for row in df:
  #print df['IP Address'].shape
  df['IP Address'].map(bulkfunc)

def bulkfunc(x):
  global f
  global ip
  ip = x
  f = open('results/%s' % ip + "_" + datetime.now().strftime("%Y-%m-%d@%H%M%S") + '.txt', 'a')
  print "Static Information: "
  f.write("Static Information: ")
  print "-" * 30
  f.write("-" * 30)
  parsenetworkcsv(ip)
  ping(ip)
  nmaprun(ip, "-sV")
  print "The output is complete."
  f.write("-" * 30)
  f.write("created by OP")
  f.close()
  time.sleep(1)

bulkcsv()

산출:

     IP Address
0  10.90.11.252
1  10.90.11.253
2  10.90.11.254
(3L,)
Static Information:
------------------------------
The output is complete.
Static Information:
------------------------------
The output is complete.
Static Information:
------------------------------
The output is complete.

문제는 pd.read_csv 때문인 것 같습니다. 코드에서 DataFrame으로 읽었습니다. 이것의 모양은 (3L, 1)이므로 applymap이 두 번 반복됩니다 (인덱스 0 및 1). 그러나 시리즈로 사용하면 열이 하나뿐이므로 맵이 작업을 수행합니다. DataFrame의 기능을 사용, 적용 할 수도 있습니다. 나는 applymap이 둘 이상의 차원 DataFrame에서 잘 작동한다고 믿습니다. 그렇지 않으면 시리즈로 취급되어야합니다.

나는 이것이 아마도 Pandas에 대한 버그 또는 변경 요청 일 수 있다고 생각합니다. 그 경로를 시도해 볼 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Angular에서는 * ngFor 루프에서 함수를 호출하고 있으며 한 번만 실행해야 할 때 전체 루프가 두 번 실행됩니다.

분류에서Dev

Pandas는 데이터베이스가 두 번째 위치 인수 일 때 함수를 적용합니다.

분류에서Dev

cursor.fetchall ()을 사용할 때 두 번째 행에서 데이터를 가져올 수 없습니다.

분류에서Dev

선택적 {parameter}를 사용할 때 ui-router 상태 확인 항목이 두 번 평가됩니다.

분류에서Dev

생성자에서 함수를 호출 할 때 Codeigniter 뷰가 두 번 실행 됨

분류에서Dev

함수에서 입력을 사용하여 숫자 또는 문자열을 반환 할 때 입력 함수를 두 번 반복합니다.

분류에서Dev

PL / R (plr)은 함수에서 dbSendQuery를 두 번 사용할 때 오류를 반환합니다. "plr_cursor"가 이미 있습니다.

분류에서Dev

인수가 필요할 때 한 번에 두 개의 스레드를 실행할 수 없습니다.

분류에서Dev

파이썬 타이머 함수는 reloader = True 일 때 bottle.py로 두 번 실행됩니다.

분류에서Dev

컬렉션 이벤트에 항목을 추가 할 때 꼭두각시가 두 번 실행됩니다.

분류에서Dev

두 번째 for 루프는 파일을 반복 할 때 무시됩니다.

분류에서Dev

첫 번째 명령에서 && 및 sudo를 사용할 때 두 번째 명령도 sudo로 실행됩니까?

분류에서Dev

헤더를 사용할 때 Angular $ http가 두 번 실행 됨

분류에서Dev

테이블로 가져온 CSV 파일이 Rails 서버를 다시 시작할 때 반복됩니다.

분류에서Dev

AngularJS-요소의 속성을 $ compile 할 때 ngRepeat가 두 번 적용됩니다.

분류에서Dev

두 번째 쿼리를 수행 할 때 오류가 발생합니다.

분류에서Dev

중첩 된 목록에 함수를 연속적으로 적용하고 함수를 적용 할 때마다 목록이 한 번 더 중첩됩니다.

분류에서Dev

SqlDataReader를 반복하면 동일한 행이 두 번 반환됩니다.

분류에서Dev

왜 manage.py 실행 스크립트는 if __name__ == "__main__"에서 사용할 때 두 번 실행됩니다.

분류에서Dev

두 번째 JS를 실행하기 전에 하나의 함수가 완료 될 때까지 기다립니다.

분류에서Dev

디스패치를 사용할 때 결과가 두 번 반응합니다.

분류에서Dev

Xcode : 시뮬레이션을 처음 실행할 때는 내 사용자 위치가 표시되지 않지만 두 번째에는 표시됩니다.

분류에서Dev

for 루프를 사용하여 csv 파일을 읽을 때 함수 반환을 추가 할 수 없습니다.

분류에서Dev

PHP는 창 위로 마우스를 이동할 때 자바 스크립트를 실행합니다. 함수에서 반복됩니다. 한 번만 실행하려면 어떻게해야합니까?

분류에서Dev

페이지 크기를 조정할 때 내 기능이 두 번 이상 실행됩니다.

분류에서Dev

C에서 동일한 인쇄 함수를 두 번째 호출 할 때 오류가 발생합니다.

분류에서Dev

Pandas를 사용하여 CSV를 분할 할 때 중복 행 수정

분류에서Dev

runfcgi를 사용할 때 Django URL이 반복됩니다.

분류에서Dev

before_create 및 before_update를 사용할 때 비밀번호가 두 번 해시됩니다.

Related 관련 기사

  1. 1

    Angular에서는 * ngFor 루프에서 함수를 호출하고 있으며 한 번만 실행해야 할 때 전체 루프가 두 번 실행됩니다.

  2. 2

    Pandas는 데이터베이스가 두 번째 위치 인수 일 때 함수를 적용합니다.

  3. 3

    cursor.fetchall ()을 사용할 때 두 번째 행에서 데이터를 가져올 수 없습니다.

  4. 4

    선택적 {parameter}를 사용할 때 ui-router 상태 확인 항목이 두 번 평가됩니다.

  5. 5

    생성자에서 함수를 호출 할 때 Codeigniter 뷰가 두 번 실행 됨

  6. 6

    함수에서 입력을 사용하여 숫자 또는 문자열을 반환 할 때 입력 함수를 두 번 반복합니다.

  7. 7

    PL / R (plr)은 함수에서 dbSendQuery를 두 번 사용할 때 오류를 반환합니다. "plr_cursor"가 이미 있습니다.

  8. 8

    인수가 필요할 때 한 번에 두 개의 스레드를 실행할 수 없습니다.

  9. 9

    파이썬 타이머 함수는 reloader = True 일 때 bottle.py로 두 번 실행됩니다.

  10. 10

    컬렉션 이벤트에 항목을 추가 할 때 꼭두각시가 두 번 실행됩니다.

  11. 11

    두 번째 for 루프는 파일을 반복 할 때 무시됩니다.

  12. 12

    첫 번째 명령에서 && 및 sudo를 사용할 때 두 번째 명령도 sudo로 실행됩니까?

  13. 13

    헤더를 사용할 때 Angular $ http가 두 번 실행 됨

  14. 14

    테이블로 가져온 CSV 파일이 Rails 서버를 다시 시작할 때 반복됩니다.

  15. 15

    AngularJS-요소의 속성을 $ compile 할 때 ngRepeat가 두 번 적용됩니다.

  16. 16

    두 번째 쿼리를 수행 할 때 오류가 발생합니다.

  17. 17

    중첩 된 목록에 함수를 연속적으로 적용하고 함수를 적용 할 때마다 목록이 한 번 더 중첩됩니다.

  18. 18

    SqlDataReader를 반복하면 동일한 행이 두 번 반환됩니다.

  19. 19

    왜 manage.py 실행 스크립트는 if __name__ == "__main__"에서 사용할 때 두 번 실행됩니다.

  20. 20

    두 번째 JS를 실행하기 전에 하나의 함수가 완료 될 때까지 기다립니다.

  21. 21

    디스패치를 사용할 때 결과가 두 번 반응합니다.

  22. 22

    Xcode : 시뮬레이션을 처음 실행할 때는 내 사용자 위치가 표시되지 않지만 두 번째에는 표시됩니다.

  23. 23

    for 루프를 사용하여 csv 파일을 읽을 때 함수 반환을 추가 할 수 없습니다.

  24. 24

    PHP는 창 위로 마우스를 이동할 때 자바 스크립트를 실행합니다. 함수에서 반복됩니다. 한 번만 실행하려면 어떻게해야합니까?

  25. 25

    페이지 크기를 조정할 때 내 기능이 두 번 이상 실행됩니다.

  26. 26

    C에서 동일한 인쇄 함수를 두 번째 호출 할 때 오류가 발생합니다.

  27. 27

    Pandas를 사용하여 CSV를 분할 할 때 중복 행 수정

  28. 28

    runfcgi를 사용할 때 Django URL이 반복됩니다.

  29. 29

    before_create 및 before_update를 사용할 때 비밀번호가 두 번 해시됩니다.

뜨겁다태그

보관