我有一个 Dataframe ,它是通过导入几个.csv
文件并随后将它们合并在一起创建的。
我读到的每个数据框都在第8行有列标题,在前7行有一些描述性文本。
这就是出现重复行的原因-因为我不能使用第一个 Dataframe 中第8行的值,然后丢弃其余 Dataframe 中的前8行(或者我可以-我相信这是可能的)。
最后,我想做的是:
- Read first .csv into data frame.
- Take values of row 8 to be column names
- Delete the first 8 rows.
- Read all other .csv files in, remove the first 8 rows from each one, and merge them all into the same data frame.
我现在面临一个问题,其中一些行将包含与其对应的列名相同的值。
例如,合并后的数据框现在看起来如下所示:
--------------------------
| Name | Age | MonthBorn |
-------------------------
| Bob | 23 | September |
| Steve| 45 | June |
| Name | Age | MonthBorn | # Should be removed
| Sue | 74 | January |
| Name | Age | MonthBorn | # Should be removed
| Tracy| 31 | February |
--------------------------
麻烦的是,合并后的数据框几乎有340,000行深,所以我不能手动检查所有内容。此外,我对每一行可能出现的位置有一个粗略的想法,但我不能确定,因为可能会有变化。
如何检查行/单元格的值是否与相应的列名匹配,或者如何设置上面概述的导入过程(项目符号)?
3条答案
按热度按时间8wtpewkr1#
我们可以使用
dplyr
和tidyr
中的函数将所有列的内容合并在一起,然后过滤掉与合并列名相同的内容,dt2
就是最终的输出。pu3pd22g2#
您的数据
溶液
输出
ie3xauqp3#
如果您的数据框大致如下所示:
然后,您可以使用ifelse语句来测试“MonthBorn”是否出现在一行中。
然后,您应该能够执行此操作以删除包含True的行,从而有效地删除不再需要的行。