从没有列 headers 的数据文件中提取 R 或 Python 中的数据
Extract data in R or Python from data file with no column headers
我有一个包含多列的 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
没有专栏headers。第 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 中的任何帮助是 appreciated.Thanks!
在 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
当我们用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)
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
我有一个包含多列的 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
没有专栏headers。第 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 中的任何帮助是 appreciated.Thanks!
在 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
当我们用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)
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