我有一个大的数据库从csv文件导入(使用pd.read_csv),下面是它在csv文件中的外观:
0 1 2
0 Milan Draw Juventus
1 2.47 3.24 3.03
2 2.45 3.23 3.06
0 Napoli Draw Parma
1 1.45 4.41 7.38
2 1.45 4.40 7.36
3 1.46 4.39 7.33
4 1.47 4.33 7.14
5 1.47 4.33 7.13
6 1.47 4.34 7.10
7 1.43 4.54 7.70
0 Fiorentina Draw Pisa
1 2.86 3.50 2.45
2 2.92 3.51 2.40
3 3.14 3.55 2.25
4 2.79 3.45 2.61
我需要 Dataframe 如下所示:
0 1 2 3 4
0 Milan Juventus 2.47 3.24 3.03
1 Milan Juventus 2.45 3.23 3.06
2 Napoli Parma 1.45 4.41 7.38
3 Napoli Parma 1.45 4.40 7.36
4 Napoli Parma 1.46 4.39 7.33
5 Napoli Parma 1.47 4.33 7.14
6 Napoli Parma 1.47 4.33 7.13
7 Napoli Parma 1.47 4.34 7.10
8 Napoli Parma 1.43 4.54 7.70
9 Fiorentina Pisa 2.86 3.50 2.45
10 Fiorentina Pisa 2.92 3.51 2.40
11 Fiorentina Pisa 3.14 3.55 2.25
12 Fiorentina Pisa 2.79 3.45 2.61
这是非常容易做到这一点,在excel的公式,但我希望能够做到这一点,因为在python的csv文件是非常非常大,所以管理与Pandas是更快的方式,但我不知道是否有可能和如何做到这一点...谢谢!
按照建议操作df=pd.read_csv(r“G:\PLUTO\odds2.csv”,sep=",”)得到了这个
Unnamed: 0 0 1 2
0 0 Milan Draw Juventus
1 1 2.88 3.58 2.46
2 2 2.84 3.56 2.5
3 0 Napoli Draw Parma
4 1 2.44 3.35 3.08
5 2 2.5 3.3 3.03
6 3 2.48 3.31 3.05
7 4 2.49 3.3 3.05
8 5 2.46 3.38 3.02
9 6 2.49 3.37 2.99
10 7 2.48 3.4 2.98
11 0 Fiorentina Draw Pisa
12 1 3.05 3.23 2.53
13 2 3.04 3.24 2.53
14 3 3.22 3.25 2.41
15 4 3.23 3.24 2.41
两种方法都在read-csv中添加了“index_col=0”:
df = pd.read_csv(r"G:\PLUTO\odds.csv", sep=",", index_col=0)
感谢这两个人!
2条答案
按热度按时间daolsyd01#
下面是一个解决问题的方法:
输出:
说明:
read_csv
获取一个3列 Dataframe ,其索引仅包含名称为的行的0reset_index
获取不含重复项的索引,使用rename
将原始索引更改为名为zero_for_names
的列new1, new2
,并在zero_for_names
上使用掩码以及reindex
及其ffill
方法arg,以使这些列成为问题中指定的目标输出的前两列zero_for_names
过滤掉原始名称行,然后删除此列并使用reset_index
获取没有间隔的新索引df.columns
以匹配问题中显示的所需列名(整数作为字符串)。xyhw6mcr2#
试试看:
图纸: