小编Sai*_*mar的帖子

通过csv文件中的块读取和反转数据块并复制到新的csv文件

假设我正在处理一个非常大的csv文件.所以,我只能通过chunk将数据块读入内存.预期的事件流程应如下:

1)使用pandas从csv读取数据块(例如:10行).

2)颠倒数据的顺序

3)反过来将每行复制到新的csv文件.所以每个块(10行)从反向开始写入csv.

最后,csv文件应该颠倒顺序,这应该在不将整个文件加载到Windows OS的内存中的情况下完成.

我正在尝试做一个时间序列预测我需要数据从旧到最新(第一行最旧的条目).我无法将整个文件加载到内存中我正在寻找一种方法,如果可能的话,每次都可以执行每个块.

我尝试了来自kaggle train.csvRossmann数据集的数据集.你可以从中得到它github repo

我的尝试没有正确地将行复制到新的csv文件中.

下面显示的是我的代码:

import pandas as pd
import csv

def reverse():

    fields = ["Store","DayOfWeek","Date","Sales","Customers","Open","Promo","StateHoliday",
              "SchoolHoliday"]
    with open('processed_train.csv', mode='a') as stock_file:
        writer = csv.writer(stock_file,delimiter=',', quotechar='"', 
                                                quoting=csv.QUOTE_MINIMAL)
        writer.writerow(fields)

    for chunk in pd.read_csv("train.csv", chunksize=10):
        store_data = chunk.reindex(index=chunk.index[::-1])
        append_data_csv(store_data)

def append_data_csv(store_data):
    with open('processed_train.csv', mode='a') as store_file:
        writer = csv.writer(store_file,delimiter=',', quotechar='"',
                                           quoting=csv.QUOTE_MINIMAL)
        for index, row in store_data.iterrows():
            print(row)
            writer.writerow([row['Store'],row['DayOfWeek'],row['Date'],row['Sales'],
            row['Customers'],row['Open'],row['Promo'],
            row['StateHoliday'],row['SchoolHoliday']])

reverse()
Run Code Online (Sandbox Code Playgroud)

先感谢您

python csv dataset python-3.x pandas

14
推荐指数
2
解决办法
980
查看次数

如何使用 tf.one_hot 计算一种热编码?

我正在尝试使用tensorflow构建mnist数据集y_train 的热编码。我不明白该怎么做?

# unique values 0 - 9
y_train = array([5, 0, 4, ..., 5, 6, 8], dtype=uint8)
Run Code Online (Sandbox Code Playgroud)

我们keras会做类似的事情

# this converts it into one hot encoding
one hot_encoding = tf.keras.utils.to_categorical(y_train)
Run Code Online (Sandbox Code Playgroud)

我应该在哪里tf.one_hot输入indices&depth参数?完成一次热编码后,如何将其从2d-tensor转换回numpy数组?

python tensorflow

5
推荐指数
1
解决办法
8423
查看次数

连接dataframe列中的所有字符串

我想将数据帧列中的所有字符串转换为单个空字符串,然后将其转换为单词列表:

import pandas as pd
df = pd.DataFrame({'read': ["Red", "is", "my", "favorite", "color"]})
print(df)
    read
0   Red
1   is
2   my
3   favorite
4   color
Run Code Online (Sandbox Code Playgroud)

我试图加入字符串,但我不知道如何添加空格.

string = ""
for i,j in df.iterrows():
    string += j["read"]
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
1686
查看次数

将列表中的每个元素转换为键值对

我有两个清单

list1 = [1,a,2,b,3,c]
list2 = [5,d,6,e,7,f]
Run Code Online (Sandbox Code Playgroud)

我试着用 list(zip(list1, list2))

那就是我得到的:

[(1, 5), ('a', 'd'), (2, 6), ('b', 'e'), (3, 7), ('c', 'f')]
Run Code Online (Sandbox Code Playgroud)

我希望这样的东西成为我的输出:

{1:a, 5:d, 2:b, 6:e, 3:c,7:f}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

python python-3.x

2
推荐指数
1
解决办法
69
查看次数

基于列之间的部分字符串匹配连接数据框

我有一个数据框,我想比较它们是否存在于另一个 df 中。

after_h.sample(10, random_state=1)

             movie           year   ratings
108 Mechanic: Resurrection   2016     4.0
206 Warcraft                 2016     4.0
106 Max Steel                2016     3.5
107 Me Before You            2016     4.5
Run Code Online (Sandbox Code Playgroud)

我想比较上述电影是否存在于另一个 df 中。

              FILM                   Votes
0   Avengers: Age of Ultron (2015)   4170
1   Cinderella (2015)                 950
2   Ant-Man (2015)                   3000 
3   Do You Believe? (2015)            350
4   Max Steel (2016)                  560 
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西作为我的最终输出:

    FILM              votes
0  Max Steel           560
Run Code Online (Sandbox Code Playgroud)

python join string-matching partial pandas

2
推荐指数
1
解决办法
9869
查看次数

在列表理解中将 str 转换为 int

我有一个以年份作为字符串的列表,但有一些缺失的年份被表示为空字符串。

我正在尝试将这些字符串转换为整数并跳过无法使用列表理解和 try 和 except 子句转换的值?

birth_years = ['1993','1994', '' ,'1996', '1997', '', '2000', '2002']
Run Code Online (Sandbox Code Playgroud)

我尝试了这段代码,但它不起作用。

try:
    converted_years = [int(year) for year  in birth_years]
except ValueError:
    pass

required output:
converted_years = ['1993','1994','1996', '1997', '2000', '2002']
Run Code Online (Sandbox Code Playgroud)

python list-comprehension python-3.x

0
推荐指数
1
解决办法
3195
查看次数