#python #pandas
Вопрос:
При чтении данных, набрав только команду ниже, мои данные появились в виде 1 столбца и нескольких строк (хотя у меня 40 столбцов).
data = "mydata.csv"
df = pd.read_csv(data,sep=", ", thousands=',' )
Из-за этого я запускаю следующую команду, она сделала мои данные 40 столбцами и некоторыми строками (которые являются правильными числами для строк и столбцов
names= df.columns.str.split(',').tolist()
df= df.iloc[:,0].str.split(',', expand=True)
df.columns = names
Но проблема в том, что это сделало все столбцы объектами, но я хотел сделать их плавающими 64. Поэтому я выполняю следующее
df = df.apply(lambda col:pd.to_numeric(col, errors='coerce'))
Теперь проблема в том, что когда я запускаю следующую строку
X = df['""USDTRY""']
Я получаю следующую ошибку:
TypeError: only integer scalar arrays can be converted to a scalar index
Как я могу это решить?
Любая помощь будет признательна.
Мои данные выглядят следующим образом:
"USDTRY" "EURTRY" "EURUSD" "BIST100" "TR2YT" "BRENT" "WTI" "Altin" "GUmus" "UFE" "TUGE" "Cari_Denge" "Issizlik" "X1...16" "X2...17" "X1...18" "X2...19" "X1...20" "X2...21" "X1...22" "X2...23" "X1...24" "X2...25" "X1...26" "X2...27" "X1...28" "X2...29" "X1...30" "X2...31" "X1...32" "X2...33" "X1...34" "X2...35" "X1...36" "X2...37" "X1...38" "X2...39" "X1...40" "X2...41"
0 1.3570 1.6590 1.2230 300.1512 16.97 64.87 67.20 436.7000 6.730 11.12 8.81 -8.760000e 08 9.4 1.3550 1.3425 1.6530 1.6580 1.2217 1.2343 304.6157 309.0802 16.925 16.880 67.57 67.02 69.81 68.94 430.9000 435.0000 6.730 6.820 11.12 11.12 8.81 8.81 -8.760000e 08 -8.760000e 08 9.4 9.4
1 1.3440 1.6221 1.2029 333.3323 15.71 63.48 66.24 468.8000 7.440 10.91 8.10 -1.800000e 07 9.6 1.3570 1.3550 1.6590 1.6530 1.2230 1.2217 300.1512 304.6157 16.970 16.925 64.87 67.57 67.20 69.81 436.7000 430.9000 6.730 6.730 11.12 11.12 8.81 8.81 -8.760000e 08 -8.760000e 08 9.4 9.4
2 1.3480 1.6230 1.2031 333.9623 15.81 63.84 66.79 472.0000 7.480 10.91 8.10 -1.800000e 07 9.6 1.3440 1.3570 1.6221 1.6590 1.2029 1.2230 333.3323 300.1512 15.710 16.970 63.48 64.87 66.24 67.20 468.8000 436.7000 7.440 6.730 10.91 11.12 8.10 8.81 -1.800000e 07 -8.760000e 08 9.6 9.4
3 1.3480 1.6230 1.2039 327.4495 15.89 63.93 66.35 469.0000 7.330 10.91 8.10 -1.800000e 07 9.6 1.3480 1.3440 1.6230 1.6221 1.2031 1.2029 333.9623 333.3323 15.810 15.710 63.84 63.48 66.79 66.24 472.0000 468.8000 7.480 7.440 10.91 10.91 8.10 8.10 -1.800000e 07 -1.800000e 07 9.6 9.6
4 1.3530 1.6163 1.2015 333.1918 15.73 62.97 65.07 462.0000 7.270 10.91 8.10 -1.800000e 07 9.6 1.3480 1.3480 1.6230 1.6230 1.2039 1.2031 327.4495 333.9623 15.890 15.810 63.93 63.84 66.35 66.79 469.0000 472.0000 7.330 7.480 10.91 10.91 8.10 8.10 -1.800000e 07 -1.800000e 07 9.6 9.6
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4126 8.5745 10.4980 1.2189 1447.0800 18.15 71.49 69.23 1898.9962 27.875 42.89 69.70 -1.127000e 09 10.6 8.5979 8.5787 10.4565 10.4588 1.2171 1.2178 1447.5900 1449.1700 18.090 18.180 72.22 72.22 70.05 69.96 1892.8199 1888.2983 27.635 27.751 42.89 42.89 69.70 69.70 -1.127000e 09 -1.127000e 09 10.6 10.6
4127 8.6563 10.5460 1.2165 1432.9300 18.15 71.89 69.62 1889.9700 27.780 42.89 69.70 -1.127000e 09 10.6 8.5745 8.5979 10.4980 10.4565 1.2189 1.2171 1447.0800 1447.5900 18.150 18.090 71.49 72.22 69.23 70.05 1898.9962 1892.8199 27.875 27.635 42.89 42.89 69.70 69.70 -1.127000e 09 -1.127000e 09 10.6 10.6
4128 8.6905 10.5519 1.2124 1428.1300 18.10 71.31 68.81 1870.5699 27.450 42.89 69.70 -1.127000e 09 10.6 8.6563 8.5745 10.5460 10.4980 1.2165 1.2189 1432.9300 1447.0800 18.150 18.150 71.89 71.49 69.62 69.23 1889.9700 1898.9962 27.780 27.875 42.89 42.89 69.70 69.70 -1.127000e 09 -1.127000e 09 10.6 10.6
4129 8.5826 10.4903 1.2209 1430.7300 18.10 71.35 68.83 1907.9440 28.200 42.89 69.70 -1.127000e 09 10.6 8.6905 8.6563 10.5519 10.5460 1.2124 1.2165 1428.1300 1432.9300 18.100 18.150 71.31 71.89 68.81 69.62 1870.5699 1889.9700 27.450 27.780 42.89 42.89 69.70 69.70 -1.127000e 09 -1.127000e 09 10.6 10.6
4130 8.5301 10.4241 1.2211 1432.0400 18.09 70.25 67.72 1900.1899 27.900 42.89 69.70 -1.127000e 09 10.6 8.5826 8.6905 10.4903 10.5519 1.2209 1.2124 1430.7300 1428.1300 18.100 18.100 71.35 71.31 68.83 68.81 1907.9440 1870.5699 28.200 27.450 42.89 42.89 69.70 69.70 -1.127000e 09 -1.127000e 09 10.6 10.6
Спасибо.
Комментарии:
1. Добавление примера данных облегчит проверку проблемы.
2. Я отредактировал вопрос, добавив примеры данных.
3. здесь нет всех столбцов, и, следовательно, было бы трудно воспроизвести проблему, вы можете добавить несколько записей со всеми столбцами вместо этого. Кроме того, я вижу, что вы упомянули разделитель тысяч в read_csv, так означает ли это, что данные в строковом формате или они просто отформатированы как разделенные запятыми, но на самом деле сохранены как простые числа ?
4. Я добавил все столбцы. На самом деле он просто отформатирован как разделенные запятыми и простые числа.
5. С помощью предоставленных вами образцов данных я смог загрузить данные просто
pd.read_csv('mydata.csv')
, без каких-либо проблем. и даже тоX = df["USDTRY"]
, что работало нормально