Home > Software engineering >  Print pandas rows cells as string
Print pandas rows cells as string

Time:01-09

I'm trying to print a data frame where each cell appears as a string:

Dataset

    a               b            c        
0 car        new york        queens  
1 bus        california      los angeles 
2 aircraft   illinois        chicago 
3 rocket     texas           houston  
4 subway     maine           augusta 
5 train      florida         miami 

Mon script:

for index, row in df.iterrows():
    print(df["a"], "\n", testes["c"], "\n", testes["b"])

My output:

0 car

1 bus

2 aircraft

3 rocket

4 subway

5 train

Name: a, dtype: object

...

Good output:

car
queens 
new york

bus
los angeles
california

...

CodePudding user response:

Looping is slow, but possible if use row Series:

for index, row in df.iterrows():
    print(row["a"], row["c"], row["b"], sep="\n")

Another idea is convert columns to numpy array:

for a, b, c in df[['a','b','c']].to_numpy():
    print(a, c, b, sep="\n")

Or zip:

for a, b, c in zip(df['a'],df['b'],df['c']):
    print(a, c, b, sep="\n")

CodePudding user response:

One way to achieve that is using apply:

df.apply(lambda row: print(f"{row['a']}\n{row['c']}\n{row['b']}\n"), axis = 1)
  • Related