我有一个包含多列的txt文件。请参阅下面的示例数据。
25 180701 1 12
25 180701 2 15
25 180701 3 11
25 180702 1 11
25 180702 2 14
25 180722 2 14
14 180701 1 11
14 180701 2 13
没有列标题。第1列是ID,第2列是日期,第3列是小时,第4列是值。我试图查找第1列中的数字25,并提取时段180701中所有小时的数据,以说180705所有值。因此结果将是一个包含以下数据的新文本文件。
25 180701 1 12
25 180701 2 15
25 180701 3 11
25 180702 1 11
25 180702 2 14
感谢R或Python的任何帮助。谢谢!
答案 0 :(得分:1)
当我们使用read.csv/read.table
读取文件时,会有一个选项header=FALSE
并使用col.names
df1 <- read.csv("file.csv", header = FALSE,
col.names = c("ID", "date", "Hour", "value"))
并稍后将值子集
subset(df1, ID == 25 & (date %in% 180701:180705), select = 1:4)
答案 1 :(得分:0)
R中的readr::read_delim()
具有一个col_names
参数,您可以将其设置为F
> readr::read_delim('hi;1;T\nbye;2;F', delim = ';', col_names = F)
# A tibble: 2 x 3
X1 X2 X3
<chr> <int> <lgl>
1 hi 1 TRUE
2 bye 2 FALSE
答案 2 :(得分:-1)
In Python, try this:
import pandas as pd
#To read csv files without headers. use 'header = None' to be explicit
df = pd.read_csv('test.csv',header = None)
df
# Then rename the generated columns
df2 = df.rename({0:'ID',1:'Date',2:'Hours',3:'Value'},axis = 'columns')
df2