Как изменить длину значения в DataFrame - PullRequest
1 голос
/ 09 июля 2019

У меня есть кадр данных, который состоит из одного столбца:

    close
0   176.380
1   176.290
2   176.740
3   177.200
4   177.600
5   177.270
6   177.190
7   177.660
8   177.890
9   177.450
10  177.185

Значения (type = float) в этом столбце отличаются по длине. Я хочу, чтобы все значения имели одинаковую длину (6). Но как мне это сделать?

Я пробовал это:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import sqlite3 

conn = sqlite3.connect("demo.db")
cur = conn.cursor()
rawdata_set = pd.read_sql('SELECT close FROM tbl_data', conn)

training_set = rawdata_set.head(100) 
for valid in training_set:
    count = 0
    if len(str(valid)) == 7:
        valid = int(str(training_set)[:6])
        count += 1

Ожидаемый результат состоит в том, что длина значений будет равна 6, но в результате я не вижу никаких изменений. Возможно, я делаю это более сложным, чем должно быть.

    close
0   176.38
1   176.29
2   176.74
3   177.20
4   177.60
5   177.27
6   177.19
7   177.66
8   177.89
9   177.45
10  177.18

Ответы [ 2 ]

2 голосов
/ 09 июля 2019

Вы можете преобразовать определенный столбец с плавающей точкой в ​​столбец строк, используя метод apply и форматирование строки.

s = pd.Series(np.random.rand(10))

s
Out[6]: 
0    0.087582
1    0.896488
2    0.560789
3    0.298119
4    0.612291
5    0.750120
6    0.009479
7    0.449085
8    0.497474
9    0.342821

s.apply('{:.2f}'.format)

Out[9]: 
0    0.09
1    0.90
2    0.56
3    0.30
4    0.61
5    0.75
6    0.01
7    0.45
8    0.50
9    0.34
dtype: object
0 голосов
/ 09 июля 2019

Вам просто нужно изменить набор данных, чего вы не делаете.valid - это просто переменная, содержащая тот же номер, который был в том месте, где вы сейчас находитесь:

training_set = rawdata_set.head(100) 
for ind, valid in enumerate(training_set):
    count = 0
    if len(str(valid)) == 7:
        training_set.iloc[ind] = float(str(training_set)[:6])
        count += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...