我有一个csv文件,可以使用python将其加载到数据库表中,并使用熊猫进行转换。
如图所示,每隔一定行数,文件就有重复的标题
ProductID Title Date Volume SalesAmount
123 Face wash 6-17-2019 7 35
124 Cleanser 6-17-2019 6 40
125 Hair Spray 6-17-2019 3 33
ProductID Title Date Volume SalesAmount
126 Hair Gel 6-17-2019 5 20
127 Shampoo 6-17-2019 4 24
128 Nail Varnish 6-17-2019 0 0
ProductID Title Date Volume SalesAmount
129 Nail Color 6-17-2019 9 18
130 Moisturizer 6-17-2019 3 27
我想要的输出是顶部的单个标头
ProductID Title Date Volume SalesAmount
123 Face wash 6-17-2019 7 35
124 Cleanser 6-17-2019 6 40
125 Hair Spray 6-17-2019 3 33
126 Hair Gel 6-17-2019 5 20
127 Shampoo 6-17-2019 4 24
128 Nail Varnish 6-17-2019 0 0
129 Nail Color 6-17-2019 9 18
130 Moisturizer 6-17-2019 3 27
我可以通过排除熊猫数据框中的行来通过索引来实现它,但是我想知道如何使用熊猫中的字符串比较/正则表达式或其他更好的方法来实现相同的目的。
答案 0 :(得分:3)
比将所有列都考虑在内的注释更加系统化:
df[df.ne(df.columns).any(1)]
输出:
ProductID Title Date Volume SalesAmount
0 123 Face wash 6-17-2019 7 35
1 124 Cleanser 6-17-2019 6 40
2 125 Hair Spray 6-17-2019 3 33
4 126 Hair Gel 6-17-2019 5 20
5 127 Shampoo 6-17-2019 4 24
6 128 Nail Varnish 6-17-2019 0 0
8 129 Nail Color 6-17-2019 9 18
9 130 Moisturizer 6-17-2019 3 27
答案 1 :(得分:0)
一种解决方案可能是删除这些行:
df = pd.read_csv('my_data.csv')
df = df[df['ProductID'] != 'ProductID']