python - 찾기 - 파이썬 특정행 추출




팬더가있는 CSV 행의 구분 기호 개수 (3)

매우 간단하게 데이터를 단일 열로 읽은 다음 쉼표로 분리하고 분리 자 수로 연결하십시오.

# s = pd.read_csv(pd.compat.StringIO(text), sep=r'|', squeeze=True, header=None)
s = pd.read_csv('/path/to/file.csv', sep=r'|', squeeze=True, header=None)

pd.concat([
      s.str.split(',', expand=True), 
      s.str.count(',').rename('_count_sep')
   ], axis=1)

           0     1  _count_sep
0       name   age           1
1  something  None           0
2        tom    20           1

연결을위한 또 다른 솔루션은 인덱스에 join 하는 것입니다 (이것은 깔끔한 하나의 라이너입니다).

s.str.split(',', expand=True).join(s.str.count(',').rename('_count_sep'))

           0     1  _count_sep
0       name   age           1
1  something  None           0
2        tom    20           1

다음과 같이 CSV 파일이 있습니다.

name,age
something
tom,20

그리고 그것을 데이터 프레임에 넣으면 다음과 같이 보입니다 :

df = pd.read_csv('file', header=None)

     0           1
1    name        age
2    something   NaN
3    tom         20

미가공 행 데이터에 쉼표를 어떻게 계산합니까? 예를 들어, 대답은 다음과 같아야합니다.

# in pseudocode
df['_count_separators'] = len(df.raw_value.count(','))

     0           1      _count_separators
1    name        age   1
2    something   NaN   0
3    tom         20    1

이렇게

df = pd.read_csv('file', header=None)
df2 = pd.read_csv('file', header=None,sep='|') # using another sep for read your csv again 

df2['0'].str.findall(',').str.len() # then one row into one cell , using str find 
0    1
1    0
2    1
3    5
Name: 0, dtype: int64

df['_count_separators']=df2['0'].str.findall(',').str.len()

데이터

name,age
something
tom,20
something,,,,,somethingelse

한 줄의 코드 : len(df) - df[1].isna().sum()





dataframe