gpt4 book ai didi

python - 从DataFrame中提取指定区域

转载 作者:太空宇宙 更新时间:2023-11-03 17:32:58 28 4
gpt4 key购买 nike

我想操作以下 cvs 文件:

"Day" "Hour" "X1" "X2" "X3" "X4" "X5"
2015-01-01 00:00 1 2 3 4 5
.....

以下内容:

"Day Hour" "X2" "X3" "X5"
"2015-01-01 00:00" 2 3 5
.....

它只是组合两列并使用一系列列。我尝试过以下操作:

csv = pandas.read_csv('test.csv')
csv['Time'] = cvs.Day + " " + csv.Hour
csv.set_index('Time')

我无法弄清楚如何在不创建新的 DataFrame 的情况下获取此列。

最佳答案

您可以将 csv 重新分配给新的数据框:

df['Time'] = df.Day + " " + df.Hour

df = df[[-1]]

一旦你没有其他对 df 的引用,那么它将被 gc'd

或者使用 csv 库在使用 itertools.izip 进行转置压缩后读取并连接列:

import pandas as pd
from itertools import izip
import csv

with open("foo.csv") as f:
next(f) # skip header
r = csv.reader(f)
zp = izip(*r)
pairs = izip(next(zp), next(zp))
df = pd.DataFrame(("{} {}".format(a,b) for a,b in pairs),columns=["Time"])

print(df)

输出:

              Time
0 2015-01-01 00:00

如果您确实想在创建新列后保留其他列,只需删除:

df['Time'] = df.Day + " " + df.Hour

df.drop(["Day","Hour"],axis=1,inplace=True)
print(df)

关于python - 从DataFrame中提取指定区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31618211/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com